【问题标题】:How to write out the contents of a string to XML without the codes...?如何在没有代码的情况下将字符串的内容写出到 XML...?
【发布时间】:2008-12-07 14:17:00
【问题描述】:

我有一个带有尖括号的字符串,如下所示:

<element1>my text here</element1>

当我将它写入控制台或我的 dataGridView 或其他任何地方时,字符串实际上看起来像这样。但是,我正在尝试将其编写为 XML 文档的一部分。

一切都很好,除了在写入的xml文件中,上面显示为:

&lt;element1&gt;my text here&lt;/element1&gt;

我怎样才能把它写成我的文字而不是代码?

谢谢!

-阿迪娜

【问题讨论】:

    标签: xml xml-serialization xelement


    【解决方案1】:

    如果您想将其保留为字符串而不转义所有元素,请使用 CDATA 块:

    <xml><![CDATA[<element1>my text here</element1>]]></xml>
    

    【讨论】:

      【解决方案2】:

      您的目标对我来说并不明确:您希望最终的 XML 文件是什么样的?

      如果你像下面这样输出它,那么 XML 解析器会将“”解释为结构的一部分,而不是内容。

      <container><element1>my text here</element1></container>
      

      至于将您的 XML 编写为字符串,这是一个坏主意:转义是有原因的,除非您非常详细地了解 XML 规范,否则您几乎肯定会犯错误。

      【讨论】:

        【解决方案3】:

        当我将它写入控制台或我的 dataGridView 或其他任何地方时,字符串实际上看起来像这样。

        永远不要直接操作 XML 文档的字符串值。

        我没有对软件开发做出很多绝对的陈述,但那几乎总是正确的。如果您对 XML 没有深入的经验,这绝对是正确的。我猜 25% 或更多的 XML 新手遇到的问题是由这个引起的。

        如果您将 XML 加载到 XmlDocument 中,找到包含它的元素并写出该元素的 InnerText 属性,则该字符串将正确显示。 DOM 正确地将文本进出 XML,对其进行编码,以便文本中的标记不会干扰 XML 的标记。你想要那个。

        我观察到的另一件事:至少 90% 的情况下,使用 CDATA 的建议在技术上是正确的,但在其他所有方面都是错误的。使用 CDATA 是最后的手段。

        【讨论】:

          【解决方案4】:

          写成HTML Encoded Format,因为您的应用程序必须认为它是内容而不是实际的 XML 元素,因此它会像内容一样对其进行转义。

          您是否尝试过使用 XmlWriter 类?

          【讨论】:

            【解决方案5】:

            嗯。

            所以我想我已经决定不使用 XMLSerializer(我认为这是一种奇特的做事方式),而是构建所有元素的字符串并将它们写成普通文本文件。这似乎有效并且足够简单。我还有其他一些独特/奇怪的东西,这种做法让这一切变得简单多了。 :)

            -阿迪娜

            【讨论】:

            • 坏主意,原因由 me.yahoo.com/a/Tad.Kk 解释
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-13
            • 2021-02-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多