c# - 尝试加载到字符串时出现一些奇怪的 XML 问题

标签 c# xml

基本上长话短说,我正在从我的 xml 文件到 c# 丢失一个空间

xml 文件由 Libre Open Office 生成(它是一个带有文本的屏幕),这里是在 Libre Open Office 中显示的文本

your family's monthly

完美,这里是 Notepad++ 显示的 XML

<text:span text:style-name="T5">your family&apos;s</text:span><text:span text:style-name="T8"> </text:span><text:span text:style-name="T5">monthly </text:span>

注意到中间标签中有一个 SPACE 了吗?那很好。

现在,当我进入 C# 时,这里是我的代码...

   XmlDocument doc = new XmlDocument();
   doc.Load(@"FILEPATH.xml");
   string xmlcontents = doc.InnerXml;

然后当我检查字符串“xmlcontents”的内容时,这就是我所看到的

<text:span text:style-name="T2">your family's</text:span><text:span text:style-name="T3"></text:span><text:span text:style-name="T2">monthly </text:span>

这会输出“your family'smonthly”(不好!)

请注意“family's”和“monthly”之间的空格是怎么消失的?这把我搞砸了,但如果我在加载后编辑 xml 以手动在其中放置一个空格(如在记事本++ 中看到的那样),那很好。

为什么会这样?

最佳答案

这是由 PreserveWhitespace-Option 引起的默认设置为 false。

The Load method always preserves significant white space. The PreserveWhitespace property determines whether or not insignificant white space, that is white space in element content, is preserved. The default is false; white space in element content is not preserved.

这应该有帮助:

XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load(@"FILEPATH.xml");
string xmlcontents = doc.InnerXml;

关于c# - 尝试加载到字符串时出现一些奇怪的 XML 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63253775/

相关文章:

c# - PDB 文件在第二次编译时变大,然后保持相同大小

c# - 检测高对比度图像中的四边形点

java - 在Scala play框架中处理xml

html - CDATA 不适用于 <pre> 标记内的 C++ 代码

java - 如何使用 jdom2 从子 XML 标签中获取内部文本?

c# - 可以在运行时使用代码针对 xsd 验证 xml 吗?

c# - 如何使用 C# 代码而不是 XAML 启用窗口镶边?

c# - 如何检索 ASP.NET MVC 在为模型属性构建 HTML 控件时将使用的 NAME 和 ID 属性值

C#获取数组的所有元素

android - 如何在相对布局中居中表格布局