gpt4 book ai didi

c# - 有属性的节点列表

转载 作者:行者123 更新时间:2023-11-30 17:57:27 27 4
gpt4 key购买 nike

我需要一个包含属性 SecondFeature (Descendants-ObjectClass) 等于 的 Descendants(Frame) 的所有属性 ID(值)的列表车辆。(有节点有 1 个“对象”,其他 2/3 时间和其他根本没有)这是代码的一部分:

<?xml version="1.0" encoding="utf-8" ?> 
- <Frame ID="120">
<PTZData Zoom="1.000" />
- <Object ID="5">
<ObjectClass SecondFeature="vehicle" />
</Object>
</Frame>

最佳答案

您可以通过以下方式完成 XPath expression :

var xml = // your XML string here
var doc = XDocument.Parse(xml);
var frameIds = doc.Root.XPathSelectElements(
"//Frame[./Object/ObjectClass[@SecondFeature ='Vehicle']]")
.Select(n => n.Attribute("ID").Value);

自然地,如果您的 Frame 节点可以在没有 ID 属性的情况下出现,您将需要在 .Select 中进行额外的空检查。

或者,非 xpath 方法(但恕我直言,这可读性较差,需要更加谨慎):

var frameIds = doc
.Descendants("ObjectClass")
.Where(n => n.Attribute("SecondFeature").Value == "Vehicle")
.Select(n => n.Parent.Parent.Attribute("ID").Value);

关于c# - 有属性的节点列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221676/

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