0

我使用 XmlDocument 类来加载 XML 和 XmlWriter 类来生成文件。我想保留 xml 中存在的十进制字符实体(粗体字符),如下所示,

<car id="wait for the signal &#10;&#10; then proceed">

尝试了 XmlTextReader 之类的选项,但没有运气。处理文件中的上述行后,如下所示,

    <car id="wait for the signal

then proceed">

或者

<car id="wait for the signal &#xA;&#xA; then proceed">

我使用的 XmlWriter 代码块,

XmlWriterSettings xmlWriterSettings = new XmlWriterSettings
{
    Indent = true,
    Encoding = encoding,
    NewLineHandling = NewLineHandling.None
};
XmlDataDocument xmlDataDocument = new XmlDataDocument
{
    PreserveWhitespace = true
};
xmlDataDocument.LoadXml(xmlString);
using (XmlWriter writer = XmlWriter.Create(filepath, xmlWriterSettings))
{
    if (writer != null)
    {
        xmlDataDocument.Save(writer);
    }
}

非常感谢任何帮助。

4

2 回答 2

0

我不确定你想在这里实现什么。

两者&#10;&#xA;是等价的。他们都引用了换行符。一种是十进制形式,另一种是十六进制形式。两者都可以与 XML 解析器一起使用。

如果您阅读官方XML 文档,它会指定允许使用任何一种引用方法。

为什么需要保留十进制形式?

于 2019-10-25T07:05:21.607 回答
0

就 XML 解析器而言,它将始终以与处理字符本身完全相同的方式处理数字字符引用。

您唯一可能的前进方式是在 XML 解析器看到文件之前对其进行预处理,将 替换为&其他字符,例如§. 然后当然,事后扭转这个过程。

于 2019-10-25T12:15:12.693 回答