0
  1. 以下のコード:

    protected void generate_Click(object sender, EventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        doc.PreserveWhitespace = true;
        doc.Load("XmlFileName");
        XmlNode node = doc.SelectSingleNode("ChartData/XaxisFields/XaxisField");
        if (node != null)
        {
            node.ChildNodes.Item(0).InnerXml = "hi";
            doc.Save("XmlFileName");
        }
    
     }   
    
  2. ここに null 参照を表示すると、

    node.ChildNodes.Item(0).InnerXml = "hi";
    
  3. コードは正しいですか、実行中のコードはエラーを表示していませんが、Xaxisfield は追加されていません。

    <?xml version="1.0" encoding="utf-8" ?>
    <ChartData>
      <XaxisFields>
        <XaxisField></XaxisField>
      </XaxisFields>
    </ChartData>
    
  4. リスト項目

特定の親ノードを選択して、xml ファイルに childnode Xaxisfield を追加したい

4

1 に答える 1

2

Linq to Xmlを使用してノードを選択し、その値を更新できます。

var xdoc = XDocument.Load("XmlFileName");
xdoc.Root.Element("XaxisFields").Element("XaxisField").Value = "hi";
// OR
// xdoc.XPathSelectElement("//XaxisField").Value = "hi";
xdoc.Save("XmlFileName");

また、ノードの子ノードがないため、コードが機能していませんXaxisField。これは機能します:

XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load("XmlFileName");
XmlNode node = doc.SelectSingleNode("ChartData/XaxisFields/XaxisField");
if (node != null)
{
    node.InnerXml = "hi";
    doc.Save("XmlFileName");
}
于 2013-01-11T08:50:40.167 に答える