我正在创建一个新的XML Document,其中包含一些没有innertext的标记。
如果我用一些数据填充innertext,那么它在这个实例中根据需要工作,即你在一行上获得开始标记,innertext和结束标记:
<testtag>somevalue</testtag>
问题出现在没有值的标签上。这些需要以与上面相同的方式显示:
<testtag></testtag>
但是,如果我用空字符串填充innertext,它会添加一个回车符&amp;换行不是导入软件所需要的。
<testtag>
</testtag>
如果我将innertext保留为null,那么我会得到一个自闭标签。同样,这不是必需的。
我已经尝试从innertext中删除/ n和/ r,因为其他一些帖子已经建议但是一旦文档被保存,就会出现同样的问题。
答案 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>