0

使用 c# 反序列化以下 XML 中特定条目的最佳方法是什么。即我想返回等于“0001”的元素属性“ID”的所有值

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Record ID="0001">
       <Random1>string1</Random1>
       <Random2>string1</Random2>
       <Random3>string1</Random3>
       <Random4>string1</Random4>
    </Record>
    <Record ID="0002">
       <Random1>string1</Random1>
       <Random2>string1</Random2>
       <Random3>string1</Random3>
       <Random4>string1</Random4>
    </Record>
</Data>

希望这是有道理的,抱歉,我使用的行话不正确,仍然是新手。

4

1 回答 1

0

尝试这个

private List<string> GetRecordChildrenList(string xmlPath, string recordID)
{
    var childNodes = new List<string>();
    var doc = XDocument.Load(xmlPath);
    var record = doc.Descendants("Record").FirstOrDefault(r => r.Attribute("ID").Value == recordID);
    if(record != null)
        childNodes = record.Descendants().Select(elm => elm.Value).ToList();
    return childNodes;
}

像这样称呼它

var path = "~/App_Data/TestXML.xml";
var values = GetRecordChildrenList(path, "0001");

返回string1, string2, string3, string4

于 2013-11-04T01:31:09.680 回答