2
    <maintag>
           <CENTER>
              <ID>11</ID>
              <CENTER>333</CENTER>
           </CENTER>
           <PRODUCTID>100</PRODUCTID>
           <LastNum>0900</LastNum>

    </maintag>

親とその子ノードの1つ、つまりCENTERに同じタグ名があるXMLの上にあります。メインタグのインデックス0で複数のステップで解析できることを知っています.CENTERタグのインデックス0はIDを提供し、センタータグのインデックス1はCENTERなどの値333を提供します.しかし、直接取得できる方法はありますかID と CENTER (11 , 333 ) の両方の値を直接。

4

3 に答える 3

1
class Program
  {
    static void Main(string[] args)
    {
      string xml = @"<maintag>
           <CENTER>
              <ID>11</ID>
              <CENTER>333</CENTER>
           </CENTER>
           <PRODUCTID>100</PRODUCTID>
           <LastNum>0900</LastNum>
    </maintag>";

      XmlDocument xd = new XmlDocument();
      xd.LoadXml(xml);

      string center = xd.DocumentElement.SelectSingleNode("CENTER/CENTER").InnerText;
      string id = xd.DocumentElement.SelectSingleNode("CENTER/ID").InnerText;


    }
于 2013-11-14T13:55:40.970 に答える
0

ここでは非常に一般的な答えを示します。

 var elementsWithChildrenOfSameName = 
    xmlDoc.Root.Elements()
     .Where(ele => ele.Elements().Any(t => t.Name == ele.Name)).ToList();

そこから、必要なデータを簡単に取得できます。

または統合されたクエリ スタイルで:

 var elementsWithChildrenOfSameName = 
        from parent in xmlDoc.Root.Elements()
        from child in parent.Elements()
        where child.Name == parent.Name
        select parent; // Or maybe select the id's?
于 2013-11-14T13:56:32.270 に答える