使用空字符串编写XMLDocument元素innertext会添加回车换行符

时间:2011-11-07 13:12:23

标签: c# xml

我正在创建一个新的XML Document,其中包含一些没有innertext的标记。

如果我用一些数据填充innertext,那么它在这个实例中根据需要工作,即你在一行上获得开始标记,innertext和结束标记:

<testtag>somevalue</testtag>

问题出现在没有值的标签上。这些需要以与上面相同的方式显示:

<testtag></testtag>

但是,如果我用空字符串填充innertext,它会添加一个回车符&amp;换行不是导入软件所需要的。

<testtag>

</testtag>

如果我将innertext保留为null,那么我会得到一个自闭标签。同样,这不是必需的。

我已经尝试从innertext中删除/ n和/ r,因为其他一些帖子已经建议但是一旦文档被保存,就会出现同样的问题。

1 个答案:

答案 0 :(得分:2)

以下代码不会受到您描述的问题的影响。如果此代码示例没有让您走上正确的轨道,请使用您正在使用的代码更新您的问题,以便我们更好地进行诊断。

class Program
{
    static void Main(string[] args)
    {
        XmlWriterSettings settings = new XmlWriterSettings {Indent = true};
        XmlWriter writer = XmlWriter.Create("C:\\Users\\elaforc\\temp.xml", settings);

        XmlDocument xmlDocument = new XmlDocument();
        XmlElement parentElement = xmlDocument.CreateElement("Parent");
        XmlElement childElement = xmlDocument.CreateElement("Child");
        childElement.InnerText = "";
        parentElement.AppendChild(childElement);
        xmlDocument.AppendChild(parentElement);
        xmlDocument.Save(writer);
    }
}

生成

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