-3

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

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

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

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

提前致谢

4

3 回答 3

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的一个简单示例

于 2013-05-15T18:22:48.443 回答
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;
于 2013-05-15T18:33:55.457 回答
0

Linq + XPath 在这里可以很好地工作。

var xDoc = XDocument.Parse(xml);
var id = xDoc.XPathSelectElement(String.Format("//*[text()='{0}']", "Hello"))
              .Attribute("Id").Value;
于 2013-05-15T18:45:24.470 回答