我找到了使用 LINQ 搜索 XML 节点的答案,但我仅限于使用 .NET 2 的 C#。
我想打开一个 XML 文件(~50Kb,所有简单文本)并搜索具有特定值<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);
}