[ASP.NET/XML] Uitlezen van nodes mislukt

Pagina: 1
Acties:

  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
Ik heb het volgende probleem: Ik kan mijn XMLnodes niet uitlezen omdat de nodes niet goed uitgelezen worden.

Mijn XML ziet er als volgt uit:
code:
1
2
3
4
5
6
<ProductDataSet>
  <Products>
    <ProdId>292</ProdId>
    <ProdName>X-top package HBG</ProdName>
  </Products>
</ProductDataSet>


Ik wil die uitlezen door een file te kunnen posten die dan wordt uitgelezen in het geheugen. Daarna lees ik het geheel in in een XmlDocument.
Nu moet ik Nodes kunnen selecteren, maar zoals ik het nu probeer is de uitkomst NULL.

Dit is de code
code:
1
2
3
4
5
6
7
8
9
10
11
12
StringReader mySR = new StringReader(FileContents);
XmlDocument xdd = new XmlDataDocument ();
xdd.Load(mySR);
mySR.Close();

XmlNamespaceManager xnm = new XmlNamespaceManager(xdd.NameTable);
xnm.AddNamespace("nsm","http://localhost/bla.xsd");


XmlNode prod;  
XmlElement root = xdd.DocumentElement;
prod = root.SelectSingleNode("nsm://Products/ProdId", xnm);


prod is leeg en ik wil dus het ID van Products in een variabele hebben. Hoe doe ik dat?

Sega till I die!


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Zeg het maar als ik onzin blaat, maar moeten je nodes niet de namespace "nsm" hebben, als je ze daarop selecteert?
code:
1
<nsm:ProductDataSet> ... </nsm:ProductDataSet>

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
nope, dat is het probleem niet. Ik ben al iets verder:

Ik kan Products al selecteren door de volgende code:

code:
1
XmlNodeList NodeList = xdd.GetElementsByTagName("Products");


Nu alleen nog even de waarde(innerXML) van ProdId kunnen uitlezen(met naam en niet NodeList.FirstChild, ivm met eventuele XML uitbreidingstags in de toekomst)

Maar dat lukt dus nog niet.

Iemand ideeen?

Sega till I die!


Verwijderd

nodeList.Item(0).InnerXml of bedoel je dat niet?

  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
Even ter aanvulling, deze code kan ook om de Nodelist te "populaten"

code:
1
XmlNodeList nodeList = xdd.DocumentElement.SelectNodes("nsm:Products",xnm);


In mijn Nodelist wil ik nu gewoon een child kunnen uitlezen door middel van een naam...

Sega till I die!


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:15

mulder

ik spuug op het trottoir

XmlNode nd = nodeList.SelectSingleNode("//progid");

oogjes open, snaveltjes dicht


  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
nodeList.SelectSingleNode is geen geldig statement.

Dat komt niet door mijn debugger...

Sega till I die!


Verwijderd

nodeList.Item(i).SelectSingleNode :)

Edit:
Maar ff een stukje bogus code dan: |:(
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
XmlNodeList nodeList = xdd.DocumentElement.SelectNodes("nsm:Products",xnm);
for(int i=0;i<nodeList.Count;i++)
{
   if (nodeList.Item(i).HasChildNodes)
   {
      for (int j=0; j<nodeList.Item(i).ChildNodes.Count; j++)
      {
         Console.WriteLine(nodeList.Item(i).ChildNodes[j].InnerText);
      }
   }
   else
   {
      Console.WriteLine(nodeList.Item(i).SelectSingleNode(myXPath));
   }
}

[ Voor 0% gewijzigd door Verwijderd op 04-11-2002 22:21 . Reden: code-fragmentje toegevoegd ]


  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
Ok, dit was al gelukt ondertussen. Nu moet ik een niveau lager bepaalde nodes selecteren, die bij een parent horen.

Ik heb deze Selectnodes code:

code:
1
XmlNodeList nlCriteria = xdd.DocumentElement.SelectNodes("nsm:ProdCriteria[pcidFamily='+idProduct+']",xnm);


Maar die werkt dus niet. idProduct heeft echt een waarde volgens mijn debugger. Wat gaat er nou fout?

Sega till I die!

Pagina: 1