1

次の XML があります。

<tickets>
     <ticket>
          <subject>ABC</subject>
          <entries-field>
               <entry-field>
                    <field-id>12345</field-id>
                    <value>New</value>
               </entry-field>
          <entries-field>
     <ticket>
     <ticket>
          <subject>DEF</subject>
          <entries-field>
               <entry-field>
                    <field-id>67890</field-id>
                    <value>category_cc</value>
               </entry-field>
               <entry-field>
                    <field-id>12345</field-id>
                    <value>Pending</value>
               </entry-field>
          <entries-field>
     <ticket>
     <ticket>
          <subject>GHI</subject>
     <ticket>
</tickets>

次のように、C# データ テーブルに変換する必要があります。

Subject          Status
------------------------
ABC              New
DEF              Pending
GHI

私は多くの方法を試しますが、うまくいきません。どなたか良い案を教えていただければ幸いです。どうもありがとうございました。

4

2 に答える 2

1

使用する実際のxmlが上記のように破損していないと仮定します

XDocument xDoc = XDocument.Parse(xml);
var result = xDoc.Descendants("ticket")
                 .Select(n => new
                    {
                        Subject = n.Element("subject").Value,
                        Status = (string)n.Descendants("value").LastOrDefault()
                    })
                .ToList();
于 2012-09-17T12:41:38.520 に答える
1

ここにアイデアがあります:

  1. XML ファイルを解析し、それぞれを反復して、それぞれticketsubject取得valueします<field-id>12345</field-id>

  2. ディクショナリ内のすべてのデータをsubjectキーvalueとして、値として入力します。見つからない場合は空のままにします

于 2012-09-17T12:41:45.493 に答える