我正在使用XDocument
和C#。
我有以下XML数据,我想从中提取id(c5946,cdb9fb等):
<rootElement>
<IDs>
<ID value="c5946"/>
<ID value="cdb9fb"/>
<ID value="c677f5"/>
<ID value="ccc78b"/>
</IDs>
</rootElement>
我尝试了不同的东西,其中包括:
XDocument xDoc = XDocument.Load(filename);
var Ids = xDoc.Root.Element("IDs").Elements("ID").Attributes("value");
但是这会回来:
value="c5946", value="cdb9fb", etc.
而不是
c5946, cdb9fb, etc.
如何获取没有相应属性名称的属性值?
答案 0 :(得分:2)
使用属性
的.Value
属性
var allId = document.Descendants("ID").Select(id => id.Attribute("value").Value);
或者您可以将XAttribute
投射到string
var allId = document.Descendants("ID").Select(id => (string)id.Attribute("value"));
如果元素中不存在属性,则转换将更简单。
var allId = document.Descendants("ID").Select(id => (string)id.Attribute("value") ?? "");