我有以下代码,用于遍历XML:
但我遇到的问题是,我不想遍历整个文档,我只想遍历具有属性“X”的节点及其子节点。请注意,我不知道节点在哪里。因此,我需要做的基本上是找出该节点是否存在(它将具有属性“X”。这就是我确定它是正确节点的方式),如果是,则获取其子节点。
private void btn_readXML_Click(object sender, EventArgs e)
{
var doc = new XmlDocument();
doc.Load("e:\\contacts.xml");
// Load xml document.
TraverseNodes(doc.ChildNodes);
}
static List<string> xmlnodes = new List<string>();
private static void TraverseNodes(XmlNodeList nodes)
{
foreach (XmlNode node in nodes)
{
List<string> temp = new List<string>();
temp.Add("Node name: " + node.Name.ToString());
XmlAttributeCollection xmlAttributes = node.Attributes;
foreach (XmlAttribute at in xmlAttributes)
{
temp.Add(" Atrib: " + at.Name + ": " + at.Value);
}
xmlnodes.AddRange(temp);
TraverseNodes(node.ChildNodes);
}
但我遇到的问题是,我不想遍历整个文档,我只想遍历具有属性“X”的节点及其子节点。请注意,我不知道节点在哪里。因此,我需要做的基本上是找出该节点是否存在(它将具有属性“X”。这就是我确定它是正确节点的方式),如果是,则获取其子节点。
有人能帮帮我吗?我对XML还很陌生。提前谢谢!
XPath
吗?你可以使用XmlDocument类的SelectSingleNode
或SelectNodes
。 - Hassan