使用元素名称获取属性ID

时间:2013-05-15 18:17:15

标签: c# xml

我正在尝试使用Element名称检索属性ID。无法做到。

<root> 
    <child Id="001">Hello</child>
</root>

示例:当我们传递值Hello时,需要提供属性ID为002

任何人都可以帮我解决这个问题

提前致谢

3 个答案:

答案 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;