加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 写一个XML元素,而不是如果InnerText为null

发布时间:2020-12-15 23:26:14 所属栏目:百科 来源:网络整理
导读:我正在编写一个c#类来编写一个 XML文件,该文件需要与我们使用的现有XML的结构完全匹配,以便一些遗留系统不会混淆. 当元素的InnerText值为null时,我需要xml元素的元素标记 element/ 代替 element/element 我设法事先做到了,但一直无法重复. 以下是我用来编写x
我正在编写一个c#类来编写一个 XML文件,该文件需要与我们使用的现有XML的结构完全匹配,以便一些遗留系统不会混淆.

当元素的InnerText值为null时,我需要xml元素的元素标记

<element/>

代替

<element></element>

我设法事先做到了,但一直无法重复.
以下是我用来编写xml文件的方法示例:

public bool WriteXML(string path)
    {
        // Create the xml document in memory inc. xml declaration
        XmlDocument doc = new XmlDocument();
        XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","UTF-8",null);

        // Create the root element
        doc.AppendChild(dec);
        XmlElement rootNode = doc.CreateElement("root");
        doc.AppendChild(rootNode);

        // Create elements at root node
        XmlElement XE_level1 = doc.CreateElement("level1");
        XE_level1.InnerText = "Text";
        rootNode.AppendChild(XE_level1);

        // Create a user data element
        XmlElement XE_level2 = doc.CreateElement("level2");
        XE_level2.InnerText = "Text";
        XE_level1.AppendChild(XE_level2);

        doc.Save(path);
    }

解决方法

每次调用InnerText的set属性访问器时,XmlElement似乎都展开了.此代码段适用于新的XmlElements:

if(text != null) {
    myNode.InnerText = text;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读