webForumDet fria alternativet

Hitta attribut...

5 svar · 411 visningar · startad av fredrik

fredrikMedlem sedan dec. 19991 072 inlägg
#1

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?

kristofferMedlem sedan juni 20001 257 inlägg
#2

Är det inte det här du letar efter? http://www.webforum.nu/showthread.php?s=&threadid=47607

fredrikMedlem sedan dec. 19991 072 inlägg
#3

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
#4

...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....

kristofferMedlem sedan juni 20001 257 inlägg
#5

Aha, du använde XPath. Jag använde den andra metoden. Kan du posta din lösning?

fredrikMedlem sedan dec. 19991 072 inlägg
#6

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).

129 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)