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 に答える