我试图使用元素名称检索属性ID。无法做到。使用元素名称获取属性ID
<root>
<child Id="001">Hello</child>
</root>
例如:当我们传递的价值它需要提供的属性ID为002
任何Hello
请帮我提前解决这个
感谢
我试图使用元素名称检索属性ID。无法做到。使用元素名称获取属性ID
<root>
<child Id="001">Hello</child>
</root>
例如:当我们传递的价值它需要提供的属性ID为002
任何Hello
请帮我提前解决这个
感谢
什么版本.NET框架你有权访问?如果您可以使用Linq来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
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;
一个简单的例子
Where子句似乎不必要,因为FirstOrDefault提供了一个谓词,通过它可以过滤元素的值 –
Linq + XPath可以在这里很好地工作。
var xDoc = XDocument.Parse(xml);
var id = xDoc.XPathSelectElement(String.Format("//*[text()='{0}']", "Hello"))
.Attribute("Id").Value;
你可以提供和示例和或代码样本你目前的工作与..基于这个问题很难确定你在说什么,当你说通过值'你好'什么做你的意思是以及你如何通过它?同时显示你的代码 – MethodMan
应该'你好'返回'001'吗? –
你能告诉我们一个你尝试过的任何代码吗? –