From: Martin H. <Mar...@gm...> - 2006-03-12 14:39:35
|
Hi there, I am trying to get somehow familiar with parts of the MVP XML library. I am having some trouble to understand how XPathIteratorReader is supposed to work, if I use ReadInnerXml() on it I do not get the result I expect (XML of all nodes of the iterator) but only the XML of the first node. Assume example XML is alike <?xml version="1.0" encoding="UTF-8"?> <gods> <god>Kibo</god> <!-- All for Kibology --> <god>Xibo</god> </gods> then with a normal XmlTextReader and ReadInnerXml() I can do e.g. XmlTextReader xmlReader = new XmlTextReader(args[0]); xmlReader.MoveToContent(); Console.WriteLine("Current node type: {0}, current name: {1}", xmlReader.NodeType, xmlReader.Name); Console.WriteLine("ReadInnerXml():\r\n{0}", xmlReader.ReadInnerXml()); xmlReader.Close(); and the output is Current node type: Element, current name: gods ReadInnerXml(): <god>Kibo</god> <!-- All for Kibology --> <god>Xibo</god> that is ReadInnerXml() in the example gives me the serialized XML of all child nodes of the root element gods. Now I thought the following use of XPathNodeIterator would give the same result: XPathDocument xmlDocument = new XPathDocument(args[0]); XPathNavigator xPathNavigator = xmlDocument.CreateNavigator(); XPathNodeIterator nodeIterator = xPathNavigator.Select(@"*/node()"); XPathIteratorReader iteratorReader = new XPathIteratorReader(nodeIterator, "gods"); iteratorReader.MoveToContent(); Console.WriteLine("Current node type: {0}, current name: {1}", iteratorReader.NodeType, iteratorReader.Name); Console.WriteLine("ReadInnerXml():\r\n{0}", iteratorReader.ReadInnerXml()); iteratorReader.Close(); Result for me with .NET 1.1 and MVP XML library 1.2 is however: Current node type: Element, current name: gods ReadInnerXml(): <god>Kibo</god> Is that the intended result? If the XPathIteratorReader is positioned on the faked root element gods why does ReadInnerXml() not output the serialized XML of all child nodes of that root element but only the serialized XML of the first element child node? -- Martin Honnen http://JavaScript.FAQTs.com/ |