webForumDet fria alternativet

Msxml; xpath med pipe-tecken '|'

ASP

5 svar · 564 visningar · startad av toha

Medlem sedan dec. 1999707 inlägg
Frågan#1

Jag har följande xml document:

&#65279;<?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?

Medlem sedan dec. 19996 721 inlägg
#2

& #124;

HTML-entities är specialdefinerade för HTML och kan inte användas i XML

Medlem sedan aug. 20039 340 inlägg
#3

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!

Medlem sedan dec. 20025 483 inlägg
#4

Däremot är det väl ej tillåtet att flera element har samma id?

Medlem sedan aug. 20039 340 inlägg
#5

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?

Medlem sedan dec. 20025 483 inlägg
#6

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.

380 ms totalt · 3 externa anrop · v20260731065814-full.aa8cfc83
117 ms — deklarationer (db)
124 ms — hämta statistik (db)
136 ms — hämta tråd, inlägg och bilagor (db)