Iain wrote:
what I want to do is to take xml like this
<stuff>
<node id="1"/>Now<node id="2"/<node id="7"/>is<node id="14"/<node
id="15"/>the<node id="19"/<node id="20"/>winter<node id="21"/>
</stuff>
and extract a list with node identifiers and text (which can be whitespace
as in this example)
Here is a .NET 2.0 XmlReader example:
using (XmlReader xmlReader = XmlReader.Create(@"file.xml")) {
while (xmlReader.Read()) {
if (xmlReader.NodeType == XmlNodeType.Element &&
xmlReader.Name == "stuff") {
while (xmlReader.Read() && xmlReader.NodeType !=
XmlNodeType.EndElement && xmlReader.Name != "stuff") {
switch (xmlReader.NodeType) {
case XmlNodeType.Element:
Console.WriteLine("Found element {0} with id: {1}.",
xmlReader.Name, xmlReader.GetAttribute("id"));
break;
case XmlNodeType.Text:
Console.WriteLine("Found text node with contents
\"{0}\"", xmlReader.Value);
break;
case XmlNodeType.Whitespace:
Console.WriteLine("Found white space \"{0}\"",
xmlReader.Value);
break;
}
}
}
}
}
Output for that sample is
Found white space "
"
Found element node with id: 1.
Found text node with contents "Now"
Found element node with id: 2.
Found white space " "
Found element node with id: 7.
Found text node with contents "is"
Found element node with id: 14.
Found white space " "
Found element node with id: 15.
Found text node with contents "the"
Found element node with id: 19.
Found white space " "
Found element node with id: 20.
Found text node with contents "winter"
Found element node with id: 21.
Found white space "
"
--
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/