toha Medlem sedan dec. 1999 707 inlägg Frågan 4 okt. 2006 10:36 #1 Jag har följande xml document:
<?xml version="1.0" encoding="UTF-8"?>
<TEMPLATE>
<languages>
<language lcid="1033">
<word id="title||Titel">Titel</word>
<word id="Introduction1||Introduktion">Introduktion</word>
</language>
<language lcid="1053">
<word id="title||Titel">Titel</word>
<word id="Introduction1||Introduktion">Introduktion</word>
</language>
</languages>
</TEMPLATE>
Vad jag vill göra är att hämta word-element där @id = ''title||Titel".
Dim xpath, wordId
wordId = "title||Titel"
Set node = xmlDoc.selectSingleNode("//word[@id = '" & wordId & "'])[1]")
Problemet är att man inte får några träffar. Troligtvis beroende på att | betyder union i xpath. Jag har testat att gjort om det till html entities: ¦ ¦ men inget av det fungerar. Går det att söka upp elementen?
E emission Medlem sedan dec. 1999 6 721 inlägg & #124;
HTML-entities är specialdefinerade för HTML och kan inte användas i XML
En vild gissning är att du ska escapea pipe-tecknen i sökfrågan:
Dim xpath, wordId
wordId = "title\|\|Titel"
Set node = xmlDoc.selectSingleNode("//word[@id = '" & wordId & "'])[1]")
Sen är jag inte helt säker på att | är ett tillåtet tecken för xml-id'n. <- Glöm det där, feltänk!
P Peter S Medlem sedan dec. 2002 5 483 inlägg Däremot är det väl ej tillåtet att flera element har samma id?
Peter S skrev:
Däremot är det väl ej tillåtet att flera element har samma id?
Slå mig i huvudet om jag har fel, men är inte id bara ett vanligt attribut i xml, tvärtemot vad det är i html?
P Peter S Medlem sedan dec. 2002 5 483 inlägg
nitro2k01 skrev:
Slå mig i huvudet om jag har fel, men är inte id bara ett vanligt attribut i xml, tvärtemot vad det är i html?
Hm, en titt på http://www.w3.org/TR/REC-xml/#sec-attribute-types verkar ge att endast ett element i ett XML-dokument får ett visst id-värde.