【问题标题】:How to write special character ( &, <,> etc ) in xml using dom parser如何使用 dom 解析器在 xml 中写入特殊字符(&、<、> 等)
【发布时间】:2012-02-13 17:21:24
【问题描述】:

我想创建一个在其文本节点之一中包含“&”的 xml 文件。喜欢

<url>www.sample.com/where/values?firstvalue=1&secondvalue=2</url>

现在我得到的是

<url>www.sample.com/where/values?firstvalue=1&amp;secondvalue=2</url>

能否请您告诉我如何实现这一目标。我正在使用 contenturl.appendChild(doc.createTextNode(model.getDocURL())); 将 url 值附加到 dom

我正在使用以下方法进行解析

        DOMSource source = new DOMSource(doc);
        transformer = transformerFactory.newTransformer();
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");    
        transformer.transform(source, result);

【问题讨论】:

  • 如果您序列化第一种形式的 DOM,您将得到一个非格式良好的 XML 文档,并且 XML 处理器将无法读取它。
  • 你的节点上&amp;amp;没有问题; &amp; 是保留字符,需要在您的 XML 输出中进行编码。如果您将该字符串读取为 XML(即,通过 XML 解析器),一切都会好起来的。
  • 同意。我不知道您为什么要创建格式不正确的 xml。
  • 嗨,伙计们,我完全同意你的观点,这将是一个糟糕的 XML,但这是一个管理请求,我无能为力......他们想要那种格式,所以我要求和你们一起。

标签: java xml dom


【解决方案1】:

我同意 Rubens Farias 的观点,您可能希望将其保留为 &amp;amp;,这是一个正确转义的 & 符号。然而,这个问题涉及非转义的 html 字符:

Convert HTML Character Back to Text Using Java Standard Library

【讨论】:

    【解决方案2】:

    您是否尝试过将 & 字符转义为 "...firstvalue=1\ secondvalue=2..." ?

    【讨论】:

    • 1.他的要求是创建格式不正确的 xml。 2. 即使他的目标是合理的,这个答案并没有让他更接近。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多