c#LINQ如何确定具有特定属性的XElement



我想实现这个功能:确定XML文件是否具有具有特定属性的XElement。这是示例XML代码:

<root>
<pou objectId="name">
</pou>
<pou objectId="value">
</pou>
<pou objectId="address">
</pou>
</root>

我想确定XML文件是否具有特定的XElement";pou";具有属性ObjectId";name";是否。

以下是我在C#中使用Descendants 的代码

XDocument xdoc = XDocument.Load(@"C:UsersjscDesktopTestForInherit.xml");
XDocument xNew = new XDocument();
xNew.Add(new XElement("root"));
if (xdoc.Descendants("pou").Where(x=> (string)x.Attribute("objectId") =="name").Any()==true)
{
xNew.Add(new XElement("pou", new XAttribute("objectId", "name")));
}
xNew.Save(@"C:UsersjscDesktopTestForInheritNew.xml");

如果xml文件具有具有特定属性值的XElement,则将XElement添加到新的xml文件中。

但不幸的是,它不起作用。有人能给我一些建议吗。

请尝试以下语法来检查是否存在具有特定名称的属性:

xdoc.Descendants("pou").Where(x=> x.Attribute("objectId") != null)

最新更新