我有一组XML的,我有,看起来像这样的XElement
:
<Object type="Item_Element">
<Property name="IDValue1" value="somevaluethatihave"/>
<Property name="IDValue2" value="somevaluethatineed"/>
<Property name="IDValue3" value="somevaluethatihaveanddonotneed"/>
</Object>
我想获得value
的IDValue2
属性值作为一个字符串,而不是作为一个XElement
我曾尝试与该这样做:
var meID = from el in linkedTeethInfo.DescendantsAndSelf("Property")
where (string)el.Attribute("name") == "IDValue2"
select el.Attribute("value");
除了没有工作,并保持在列为索引值XElement
格式返回它的一些其他组合。我想知道是否有可能得到一个值somevaluethatineed
作为一个字符串?我将优选喜欢这个使用一个变量,而不是有打破这种分解成多个步骤。
XElement
类提供Value
属性。你可以用它来获得与元素相关联的文字:
IEnumerable<string> meID = from el in linkedTeethInfo.DescendantsAndSelf("Property")
where (string)el.Attribute("name") == "IDValue2"
select el.Attribute("value").Value;
你也可以投你的属性string
你where
子句中所做的一切:
IEnumerable<string> meID = from el in linkedTeethInfo.DescendantsAndSelf("Property")
where (string)el.Attribute("name") == "IDValue2"
select (string)el.Attribute("value");
如果您知道有要素中,只有一个"IDValue2"
,你可以得到一个字符串是这样的:
string meID = (from el in linkedTeethInfo.DescendantsAndSelf("Property")
where (string)el.Attribute("name") == "IDValue2"
select el.Attribute("value").Value).FirstOrDefault();
你可以得到价值,即使没有明确的LINQ查询(和它看起来更优雅对我来说)是这样的:
var value = your_XElement
.XPathSelectElement("Property[@name='IDValue2']")
.Attribute("value")
.Value;