0
  1. XML コード:

        <Report>
          <ChartData>
            <ListName>area</ListName>
            <ViewName>Selecte List</ViewName>
            <YAxisFields>
              <YAxisField>
                <Name>Scheduled Start Date/Time</Name>
                <DataType>DateTime</DataType>
                <Category>Year</Category>
              </YAxisField>
            </YAxisFields>
            <XAxisFields>
              <XAxisField>
                <Name>Release Type</Name>
                <DataType>String</DataType>
                <Category>
                </Category>
              </XAxisField>
            </XAxisFields>
          </ChartConfig>
       </Report>
    
  2. 以下のコードを使用して、サブノードのリスト名とビュー名の値を取得しました。

        XmlDocument doc = new XmlDocument();
        doc.Load("XmlFileName"); 
        XmlNodeList node = doc.SelectNodes("Report/ChartData"); 
        foreach (XmlNode xn in node) 
        { xn["ListName"].InnerXml = chartname; 
        xn["ViewName"].InnerXml = SelectedList; 
        **xn["YAxisFields/YAxisField"].InnerXml = yaxisfield; //not working, need to get the value for this xml node,need help in this line dono how to proceed**
        doc.Save("XmlFilename"); 
        }
    
  3. 最初に、上記のコードの代わりにこのようなコードを試しました。これでは、各ノードの値を取得するためにいくつかのオブジェクトを作成する必要があるため、xmlnodelist のオブジェクトを作成してみました。次に、foreach ループを使用して各ノードの値を取得しました。しかし、これには YAxisFields としての親ノードと YAxisField としてのサブノードもあるため、YAxisFields/YAxisField の値を取得できませんでした。

        XmlDocument doc = new XmlDocument();
        doc.Load("XmlFileName");
        XmlNode Listnode = doc.SelectSingleNode("Report/ChartData/ListName"); 
        XmlNode Viewnode = doc.SelectSingleNode("Report/ChartData/ViewName");
                if (Listnode != null)
                {
                    Listnode.InnerXml = chartname;
                    Viewnode.InnerXml = SelectedList; ;
                    doc.Save("XmlFileName");
    
4

1 に答える 1

1

次のように、Linq を XML XDocument に使用します。

doc.Root.Descendants("ChartData").ToList().ForEach(node =>
                {
                    node.Element("ListName").Value = chartname;
                    node.Element("ViewName").Value = SelectedList;
                });
于 2013-01-23T07:47:55.057 に答える