Hej, jag har suttit och arbetat lite för att läsa upp en xmlfil och sedan försöka plocka ut en viss tag för en överordnad tagg, i detta fallet name för id = SE. Se dokumentet nedan. SelectSingelNode använder sig av en XPath för att få ut data. Om du söker fårn toppen måste du ange hela sökvägen, Languages måste vara med. Detta får jag att funka iallafall: Tack vänner, jag kände att jag var nära men inte fick kläm på det. Men nu är det klart - skall definitivt bli en artikel av detta lite senare.Läsa xml-fil med kriterier
<info>
<languages>
<language id="SE">
<frontpage>
<name>Test</name>
</frontpage>
</language>
<language id="EN">
<frontpage>
<name>Test</name>
</frontpage>
</language>
</language>
</info>
Det jag vill få ut är name värdet där language id = "SE". Jag har en lösning på detta men tror inte att den är speciellt dynamisk. Helst skulle jag vilja kunna skicka in en parameter som returnerar name för rätt språk via en funktion, ex:
label1.text = GetValue("/frontpage/name", "SE")
Alltså inte hela förutsättningen, utan en del av den för att påvisa att jag vill i frontpage-taggen ta ut name. Med andra ord finns andra taggar än frontpage, kanske subpage osv vilket gör det smidigt.
Jag har hittat en egenskap som heter SelectSingleNode som jag tror kan vara bäst för detta ändamål. Frågan är - finns någon stilig lösning på detta för att göra det dynamiskt? Sv: Läsa xml-fil med kriterier
Detta kan ev fungera:
string value = myXmlDoc.SelectSingleNode("language[@id='SE']/frontpage/name").InnerText
Mvh Fredrik Normén NSQUARED2
http://www.nsaquared2.netSv: Läsa xml-fil med kriterier
<code>
string value = myXmlDoc.SelectSingleNode("languages/language[@id='SE']/frontpage/name").InnerText
</code>
Mvh JohanSv: Läsa xml-fil med kriterier
<code>
string value = myXmlDoc.SelectSingleNode("//language[@id='SE']/frontpage/name").InnerText ;
</code>Sv: Läsa xml-fil med kriterier