XML使用main元素追加节点

时间:2017-01-09 14:11:04

标签: c# xml

大家好我的XML如下

<?xml version="1.0" encoding="utf-8"?>
<ApplicantDetails>
</ApplicantDetails>

我基于少量搜索动态添加节点,如下所示

XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
XmlElement root = xDoc.DocumentElement;
XmlElement elem = null;
XmlElement e = xDoc.CreateElement("ApplicantData");
e.InnerText = string.Empty;
root.AppendChild(e);
xDoc.Save(path);
elem = xDoc.CreateElement("Mobile");
elem.InnerText = txtMobile.Text;
XmlNode node = root.SelectSingleNode("ApplicantData");
node.AppendChild(elem);
xDoc.Save(path);

这给我的XML如下

<?xml version="1.0" encoding="utf-8"?>
<ApplicantDetails>
  <ApplicantData>
    <Mobile>1234567890</Mobile>
  </ApplicantData>
</ApplicantDetails>

现在我想添加一个新节点,如下所示

<ApplicantData>
    <Mobile>1000000</Mobile>
</ApplicantData>

但是根据我编写的代码,它附加如下

<?xml version="1.0" encoding="utf-8"?>
<ApplicantDetails>
  <ApplicantData>
    <Mobile>1234567890</Mobile>
    <Aadhar>
    </Aadhar>
    <Mobile>1234567801</Mobile>
  </ApplicantData>
  <ApplicantData>
  </ApplicantData>
</ApplicantDetails>

2 个答案:

答案 0 :(得分:1)

而不是XmlElement使用XmlNode

XmlNode ApplicantData = xDoc.CreateElement("ApplicantData");
XmlNode elem = null;
XmlNode e = xDoc.CreateElement("ApplicantData");
e.InnerText = string.Empty;
elem = xDoc.CreateElement("Mobile");
elem.InnerText = txtMobile.Text;
ApplicantData.AppendChild(elem);
xDoc.DocumentElement.AppendChild(ApplicantData);                    
xDoc.Save(path);

答案 1 :(得分:0)

您可以使用以下代码创建动态xml。

XElement xmldata = new XElement("ApplicantDetails",
           new XElement("ApplicantData", new XElement("Mobile", 1234567890)),
           new XElement("ApplicantData", new XElement("Mobile", 1234567801))
        );