Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Linq på xml data

Postades av 2010-02-10 02:42:16 - Joakim Åhl, i forum c# (c-sharp), Tråden har 5 Kommentarer och lästs av 4152 personer

Hur skulle ni skriva Linq för att få ut text="Partly Cloudy" temp="-2" i ren text?

Jag prova med Linq men han säger att man inte får använda : i Linq

Jag vill alltså använda raden:
<code>
<yweather:condition text="Partly Cloudy" code="29" temp="-2" date="Thu, 28 Jan 2010 4:50 am CET" />
</code>


XML-filen
<code>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<rss version="2.0" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<channel>

<title>Yahoo! Weather - Skara, SE</title>
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Skara__SE/*http://weather.yahoo.com/forecast/SWXX0130_c.html</link>
<description>Yahoo! Weather for Skara, SE</description>
<language>en-us</language>
<lastBuildDate>Thu, 28 Jan 2010 4:50 am CET</lastBuildDate>
<ttl>60</ttl>
<yweather:location city="Skara" region="" country="Sweden"/>

<yweather:units temperature="C" distance="km" pressure="mb" speed="km/h"/>
<yweather:wind chill="-8" direction="340" speed="22.53" />
<yweather:atmosphere humidity="83" visibility="9.99" pressure="982.05" rising="0" />
<yweather:astronomy sunrise="8:19 am" sunset="4:15 pm"/>
<image>
<title>Yahoo! Weather</title>
<width>142</width>
<height>18</height>
<link>http://weather.yahoo.com</link>
<url>http://l.yimg.com/a/i/us/nws/th/main_142b.gif</url>
</image>
<item>

<title>Conditions for Skara, SE at 4:50 am CET</title>
<geo:lat>58.38</geo:lat>
<geo:long>13.44</geo:long>
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Skara__SE/*http://weather.yahoo.com/forecast/SWXX0130_c.html</link>
<pubDate>Thu, 28 Jan 2010 4:50 am CET</pubDate>
<yweather:condition text="Partly Cloudy" code="29" temp="-2" date="Thu, 28 Jan 2010 4:50 am CET" />
<description>
<![CDATA[
<img src="http://l.yimg.com/a/i/us/we/52/29.gif"/><br />
<b>Current Conditions:</b><br />
Partly Cloudy, -2 C<BR />
<BR /><b>Forecast:</b><BR />
Thu - Snow. High: -1 Low: -4<br />
Fri - Snow Showers. High: -4 Low: -11<br />
<br />
Full Forecast at Yahoo! Weather<BR/><BR/>
(provided by The Weather Channel)<br/>
]]>
</description>
<yweather:forecast day="Thu" date="28 Jan 2010" low="-4" high="-1" text="Snow" code="16" />
<yweather:forecast day="Fri" date="29 Jan 2010" low="-11" high="-4" text="Snow Showers" code="14" />
<guid isPermaLink="false">SWXX0130_2010_01_28_4_50_CET</guid>
</item>

</channel>
</rss>
</code>


Svara

Sv: Linq på xml data

Postades av 2010-02-10 08:49:55 - Cecilia Wirén

yweather är ju ett alias för ett namespace, xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" Så du behöver använda "http://xml ...." istället men problemet är ju att den också innehåller : och kommer att trigga samma fel. Skapa istället ett XNamespace objekt som motsvara detta namespace, slå sedan ihop detta namespace med namnet för elementet och du kommer nu inte att ha en sträng utan ett XName (yweather + "condition"), och det fungerar.

<code>
XDocument xdoc = XDocument.Load(@"c:\test.xml");
XNamespace yweather = XNamespace.Get("http://xml.weather.yahoo.com/ns/rss/1.0");
var q = from element in xdoc.Descendants("channel").Descendants("item").Descendants(yweather + "condition")
select new
{
text = element.Attribute("text"),
temp = element.Attribute("temp")
};
</code>


Svara

Sv:Linq på xml data

Postades av 2010-02-11 01:19:53 - Joakim Åhl

Det funka fint dock har jag en fundering.

jag skriver så härför att få ut värdera

<code>
foreach (var result in q)
{
Temp = result.temp.ToString();
Weather = result.text.ToString();
}
</code>

men Temp blir "temp=-11" och Weather="text=sunny" . Jag vill inte ha med variabelnamnen utan bara själva värdet går det att fixa på något enkelt sätt eller måste man köra med en replace/regex och ta bort det?


Svara

Sv: Linq på xml data

Postades av 2010-02-11 09:11:41 - Oskar Johansson

Har du kollat vad det finns för fler metoder/egenskaper på objektet utöver ToString?


Svara

Sv: Linq på xml data

Postades av 2010-02-11 12:27:02 - Andreas Hillqvist

Det finns två sätt att lösa det på. I frågan:

select new
{
    text = element.Attribute("text").Value,
    temp = element.Attribute("temp").Value
};

Eller i for-satsen:
foreach (var result in q)
{
    Temp = result.temp.Value;
    Weather = result.text.Value;
}


Svara

Sv:Linq på xml data

Postades av 2010-02-11 20:14:35 - Joakim Åhl

Tackar det funka fint


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 635
27 958
271 741
502
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies