fredrikMedlem sedan dec. 19991 072 inlägg Jag behöver söka igenom ett xml-dok. efter ett visst attribut värde, ex:
<item id="1">
<child1>asdf</child1>
<child2>ölkj</child2>
</item>
<item id="2">
<child1>popoi</child1>
<child2>werew</child2>
</item>
Jag vill här hämta ut det som står i "child1" där id="2" i "item".
Hur är bästa sätt att göra det? Jag använder MSXML2 för att parsa dokumentet.
Just nu loopar jag igenom alla "item" och kollar vad "id" har för värde, men finns det nåt smidigare sätt?
fredrikMedlem sedan dec. 19991 072 inlägg Jo, exakt, jag hittade det på https://www.w3schools.com fast jag skriver lite annorlunda...
Dim strIDXPath As String = "item/[@id='2']"
fast...det kanske bara är VB -syntax ist!
Tack ändå!
fredrikMedlem sedan dec. 19991 072 inlägg ...fast nu när jag testar lite så märker jag att vad jag än skriver så tar den alltid första noden...
..fast i efterhand:
löste det själv...var fel-tänkt av mig....
Aha, du använde XPath. Jag använde den andra metoden. Kan du posta din lösning?
fredrikMedlem sedan dec. 19991 072 inlägg Japp, mitt xml-dok, ser ut så här:
<?xml version="1.0" standalone="yes"?>
<translation>
<item id="1">
<en>Photoalbum</en>
<se>Fotoalbum</se>
<no>Photoalbum</no>
<fi>Photoalbum</fi>
</item>
<item id="2">
<en>Files</en>
<se>Filer</se>
<no>Files</no>
<fi>Files</fi>
</item>
</translation>
Vill jag nu hämta ut "en" (engelska) där id är 1 skriver jag som XPath:
"/translation/item[@id='1']/en"
(skapas dynamiskt i koden)
Jag använder:
xmlDoc.SelectSingleNode(strIDXPath).InnerXml
För att hämta ut värdet för denna nod. ("Photoalbum" i detta fallet).