我有以下XML
<sss>
<session status="true" reason="Any reason" />
<employee name="abc" address="abc 123" isManager="false"/>
</sss>
我正在尝试使用以下LINQ查询访问reason属性的值:
Dim results1 = (From r In document.Root.Elements("session").ToList()
Select r).First()
results1.Attributes("reason")(0).Value
虽然我能够通过使用上面的语法来访问属性的值,但我有点困惑,为什么我必须在理由(如数组)前使用(0)因为结果是单个属性。
访问该值的任何备用选项,或在多行的情况下执行循环?
由于
答案 0 :(得分:0)
鉴于您的XDocument
Dim document = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sss>
<session status="true" reason="Any reason" />
<employee name="abc" address="abc 123" isManager="false"/>
</sss>
你可以简单地使用XML文字;不需要LINQ:
Dim reason = document.Root.<session>.@reason
reason
现在是String
,其值为Any reason
回答你的另一个问题:
您正在使用Attributes
方法,该方法返回一组属性。如果您想获得单个元素,请改用Attribute
方法。
答案 1 :(得分:0)
如果你想要第一个&#34; session&#34;的属性?元素,那么它可以如下获得:
Dim results1 = document.Descendants("session").First().Attribute("reason").Value