如何使用LINQ从以下XML中选择字段:
<MESSAGE MSGID="123" NAME="MyMessage">
<FIELDS>
<FIELD NAME="F1" FTYPE="STRING">123</FIELD>
<FIELD NAME="F2"> FTYPE="INT">0</FIELD>
</FIELDS>
</MESSAGE>
代码:
XDocument xmldoc = null;
try
{
xmldoc = XDocument.Parse(bstrXml);
//Returns NULL
//var result = xmldoc.Descendants("Fields");
//Returns NULL
//var result = xmldoc.Elements("Fields");
}
答案 0 :(得分:1)
可以使用
找到具有属性字段的元素var childElements = xDoc.Elements();
var fieldAttributes = childElements.Elements().Select(p => p.Attribute("Fields"));
答案 1 :(得分:0)
此解决方案将搜索xml字段元素并按名称选择字段
var fieldName = "F1";
var xDoc = XDocument.Load("XMLFile1.xml");
var field = xDoc.Descendants("FIELD")
.Where(f => string.Compare(f.Attribute("NAME").Value, fieldName, StringComparison.CurrentCulture) == 0);
更改where表达式以优化搜索。