C# 如何在xml中使用getelementid进行搜索
我想使用GetElementId搜索XML 我有一个XML文件,其中的属性与每个元素关联。元素名称可以延迟,但每个元素都有唯一的Id 例如:C# 如何在xml中使用getelementid进行搜索,c#,xml,C#,Xml,我想使用GetElementId搜索XML 我有一个XML文件,其中的属性与每个元素关联。元素名称可以延迟,但每个元素都有唯一的Id 例如: <root> <secondRoot> <Person UniqueID='A112' Name='Fred'><FeMale>I am Female</FeMale></Person> <Person UniqueID='A111'><Male>I
<root>
<secondRoot>
<Person UniqueID='A112' Name='Fred'><FeMale>I am Female</FeMale></Person>
<Person UniqueID='A111'><Male>I am male</Male></Person>
<Person SSN='A222' Name='Tom'/>
<Customer id='A111'/>
<Customer id='A222334444'/>
<Team members='A222334444 A333445555'/>
<Random/>
</secondRoot>
</root>
我是女性
我是男性
在上面的XML中,我有与几个元素关联的UniqueID属性。我想搜索具有UniqueID属性的元素。即使我尝试使用以下DTD,它仍然是不够的
<!DOCTYPE root [
<!ELEMENT root ANY>
<!ATTLIST Person UniqueID ID #REQUIRED>
]>
]>
问题是UniqueID可能出现在多个元素属性列表中。 我需要避免一种情况,即我必须声明DTD中具有UniqueID属性的元素的每一次出现 有人能提出什么建议吗
谢谢尝试使用LINQ to XML,无需DTD
// XML data
var xml = "<root><secondRoot><Person UniqueID='A112' Name='Fred'><FeMale>I am Female</FeMale></Person><Person UniqueID='A111'><Male>I am male</Male></Person> <Person SSN='A222' Name='Tom'/> <Customer id='A111'/> <Customer id='A222334444'/> <Team members='A222334444 A333445555'/> <Random/></secondRoot></root>";
var doc = XDocument.Parse(xml);
// Get all nodes that have UniqueID
var nodes =
from element in doc.Descendants()
where element.Attribute("UniqueID") != null
select element;
//XML数据
var xml=“我是女性,我是男性”;
var doc=XDocument.Parse(xml);
//获取具有唯一ID的所有节点
变量节点=
来自doc.subjects()中的元素
where element.Attribute(“UniqueID”)!=无效的
选择元素;
节点
列表将包含具有UniqueID属性的所有节点。“UniqueID可能出现在多个元素中”-然后提供更好的示例。