我不确定我是否正确地说明了这个标题 - 但总结起来似乎有点复杂。我会尽力在这里做更好的解释。
我有一些类似于此的XML:
<Object type="element">
<Property name="name1" value="somevalue1"/>
<Property name="name2" value="somevalue2"/>
<Property name="name3" value="somevalue3"/>
</Object>
我想使用value
的{{1}}获得property name1
的{{1}}。我有多个看起来相似的对象,但只是认为将它的一个例子发布到SO会更好。
我已经拥有value
propery name2
只是能够用它来获得我需要的东西。我还想使用XML到LINQ并使用属性(如果订单在将来更改,则通过索引可能会搞砸了)。
我希望这是有道理的。如果有任何其他问题随时发表评论,我将编辑我的帖子以澄清。
答案 0 :(得分:1)
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;
获取包含Object
子项的value="somevalue2"
元素,然后从value
name1
基数