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. 在这里显示空引用,

    node.ChildNodes.Item(0).InnerXml = "hi";
    
  3. 代码是否正确,运行后的代码没有显示任何错误但没有添加Xaxisfield。

    <?xml version="1.0" encoding="utf-8" ?>
    <ChartData>
      <XaxisFields>
        <XaxisField></XaxisField>
      </XaxisFields>
    </ChartData>
    
  4. 项目清单

我想通过选择特定的父节点在 xml 文件中添加子节点 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 回答