Avatar billede Slettet bruger
03. marts 2005 - 09:33 Der er 2 kommentarer og
1 løsning

xmlns og XPath

Jeg har følgende XML:

<root xmlns="">
  <item name="1"/>
  <item name="2"/>
  <item name="3"/>
</root>

Normalt ville jeg med XPATH kunne skrive:

  /root/item

for at få fat i "item" elementerne.

Men nu står der xmlns="", så min XPATH returnerer null.

Hvordan konstruerer jeg et XPATH statement som returnerer mine "item" noder?
Avatar billede janegil Nybegynder
03. marts 2005 - 11:15 #1
(Kanskje er det lovlig, men xmlns="" er ikke vakker kode)

Det virker ikke med default namespaces i XSLT, så der må du deklarerer
xmlns:nothing=""
og så matche på
nothing:/root/nothing:item
Avatar billede janegil Nybegynder
03. marts 2005 - 11:15 #2
/nothing:root/nothing:item
Avatar billede Slettet bruger
03. marts 2005 - 13:36 #3
Jeg ved faktisk ikke helt om de ovenstående svar er korrekte. I C# kom den endelige kode til at se således ud:

XmlNode node = ***min node***

XmlNamespaceManager nsmgr =
  new XmlNamespaceManager(node.OwnerDocument.NameTable);
nsmgr.AddNamespace("nothing", "xmlns");
XmlNodeList items = node.SelectNodes("*",nsmgr);
foreach (XmlNode menuitem in menuitems)
{
  // Processér item node
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester