我发现搜索使用LINQ XML节点的答案,但我仅限于C#和.NET 2。
我想开一个XML文件(〜是50 Kb,所有简单的文本),并搜索所有<Tool>
与属性节点name
具有特定的值。
好像XmlDocument.SelectNodes()
可能是什么我要找的,但我不知道的XPath。 这是正确的方式,如果这样会怎样代码是什么样子?
我发现搜索使用LINQ XML节点的答案,但我仅限于C#和.NET 2。
我想开一个XML文件(〜是50 Kb,所有简单的文本),并搜索所有<Tool>
与属性节点name
具有特定的值。
好像XmlDocument.SelectNodes()
可能是什么我要找的,但我不知道的XPath。 这是正确的方式,如果这样会怎样代码是什么样子?
可以在XmlDocument.SelectNodes如使用XPath: SelectNodes("//ElementName[@AttributeName='AttributeValue']")
XML示例:
<root>
<element name="value1" />
<element name="value2" />
<element name="value1" />
</root>
C#示例:
XmlDocument xDoc = new XmlDocument();
// Load Xml
XmlNodeList nodes = xDoc.SelectNodes("//element[@name='value1']");
// nodes.Count == 2
在这里你可以找到一些额外的XPath样本
认为你可以做这样的事情(当然,质朴的,但你的想法),使用GetElementsByTagName
var myDocument = new XmlDocument();
myDocument.Load(<pathToYourFile>);
var nodes = myDocument.GetElementsByTagName("Tool");
var resultNodes = new List<XmlNode>();
foreach (XmlNode node in nodes)
{
if (node.Attributes != null && node.Attributes["name"] != null && node.Attributes["name"].Value == "asdf")
resultNodes.Add(node);
}