我正在尝试使用Element名称检索属性ID。无法做到。
<root>
<child Id="001">Hello</child>
</root>
示例:当我们传递值Hello
时,需要提供属性ID为002
任何人都可以帮我解决这个问题
提前致谢
答案 0 :(得分:1)
您可以访问哪个版本的.NET框架?如果你可以使用Linq to XML检索属性名称应该很容易。
XDocument document = XDocument.Load("path to your xml");
XElement element = document.Descendants.FirstOrDefault(x => x.Value == "element name");
var attribute = element.Attribute("Id");
(伪代码,不能保证它完全正常,因为我现在没有时间编译它,但这是一般的想法)
以下是MSDN
的简单示例答案 1 :(得分:1)
Using System.Xml.Linq;
string xml = @"<root><child Id=""001"">Hello</child></root>";
XElement element = XElement.Parse(xml);
var itemName = element.Descendants().FirstOrDefault(n => n.Value == "Hello")
.Attribute("Id").Value;
答案 2 :(得分:0)
Linq + XPath可以在这里很好地工作。
var xDoc = XDocument.Parse(xml);
var id = xDoc.XPathSelectElement(String.Format("//*[text()='{0}']", "Hello"))
.Attribute("Id").Value;