<?xml version="1.0" encoding="UTF-8"?>
<meta>
<field type="xs-string" name="AssetId">TF00000002</field>
<field type="xs-string" name="Title">TitleOfAsset</field>
</meta>
我使用函数
将此XML加载到XDocument中XDocument doc = XDocument.Parse(xmlData)
但是,我希望能够检索文本字段“TF00000002”和“TitleOfAsset”......我该怎么做呢?
templateMetaData.assetID = doc
.Descendants()
.Where(p => p.Name.LocalName == "AssetId")
.ToString();
返回:
System.Linq.Enumerable+WhereEnumerableIterator`1[System.Xml.Linq.XElement]
任何人都可以对此发光吗?
答案 0 :(得分:0)
在您的查询中,您在ToString
上调用了IEnumerable<XElement>
,它永远不会给您预期的结果,而是查找field
下的Root
元素并获取他们的值:
var values = doc.Root
.Elements("field")
.Select(element => (string)element);
如果您想使用name
属性访问您的值,可以使用Dictionary
:
var values = doc.Root
.Elements("field")
.ToDictionary(x => (string)x.Attribute("name"), x => (string)x);
然后您可以访问AssetId
:
var id = values["AssetId"];