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?
Annonceindlæg fra DE-CIX
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
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 }