gpt4 book ai didi

c# - 如何找到缺少特定子节点的 XML 节点?

转载 作者:行者123 更新时间:2023-11-30 21:50:18 24 4
gpt4 key购买 nike

此 MSDN 页面展示了如何使用 Linq-to-XML 查找包含特定子节点的 XML 节点。不幸的是,我遇到了相反的问题:我有一个大列表,其中一些节点缺少应该存在的某个子节点。有什么好的方法可以找到它们吗?

例如:

<Objects>
<Object>
<ID>1</ID>
<A>1</A>
<B>1</B>
<C>1</C>
</Object>
<Object>
<ID>2</ID>
<A>2</A>
<B>2</B>
<C>2</C>
</Object>
<Object>
<ID>3</ID>
<A>3</A>
<C>3</C>
</Object>
<Object>
<ID>4</ID>
<A>4</A>
<B/>
<C>4</C>
</Object>
</Objects>

我将如何设置代码来查找所有 <Object>缺少 <B> 的元素节点,它会返回#3,而不是#4?

最佳答案

这是有效的,因为 XContainer.Element("elementName") 返回 null 如果 elementName 不存在(注意:我复制了你的 xml到一个名为 xml 的字符串中,因此您只需在 XDocument 上执行 .Descendents:

    static void Main(string[] args)
{
var elementsWithoutB = XDocument.Parse(xml)
.Descendants("Object")
.Where(x => x.Element("B") == null);

// Prove it works by printing the elements returned
foreach (var element in elementsWithoutB)
{
Console.WriteLine(element.ToString());
}

Console.Read();
}

关于c# - 如何找到缺少特定子节点的 XML 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36459441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com