如何使用另一个元素属性获取同一级别元素的值
本文关键字:元素 一级 另一个 何使用 属性 获取 | 更新日期: 2023-09-27 18:33:07
我不确定我的标题措辞是否正确 - 否则总结似乎有点复杂。我会尽力在这里更好地解释。
我有一些类似于下面的XML:
<Object type="element">
<Property name="name1" value="somevalue1"/>
<Property name="name2" value="somevalue2"/>
<Property name="name3" value="somevalue3"/>
</Object>
我想通过使用propery name2
value
来获得property name1
value
。我有多个看起来相似的对象,但只是认为最好只向 SO 发布一个示例。
我已经有了property name2
value
,只是能够使用它来获得我需要的东西的问题。我还想使用 XML 到 LINQ 并使用属性来执行此操作(如果将来更改顺序,按索引可能会搞砸事情(。
我希望这是有道理的。如果有任何其他问题,请随时发表评论,我将编辑我的帖子以澄清。
var xml = @"
<root>
<Object type=""element"">
<Property name=""test1"" value=""testvalue1""/>
<Property name=""test2"" value=""testvalue2""/>
<Property name=""test3"" value=""testvalue3""/>
</Object>
<Object type=""element"">
<Property name=""name1"" value=""somevalue1""/>
<Property name=""name2"" value=""somevalue2""/>
<Property name=""name3"" value=""somevalue3""/>
</Object>
</root>";
var att = XDocument.Parse(xml)
.Descendants("Object")
.First(ele => ele
.Elements()
.Any(child => child.Attribute("value").Value == "somevalue2"))
.Elements()
.First(ele => ele.
Attribute("name").Value == "name1")
.Attribute("value").Value;
获取具有value="somevalue2"
子元素的Object
元素,然后从name1
中获取value
基础