【问题标题】:Retrieved a String from ServletRequest by using getParameter("somename"). How can I turn it back into the XML that it is?使用 getParameter("somename") 从 ServletRequest 检索字符串。我怎样才能把它变成原来的 XML?
【发布时间】:2009-12-16 20:40:11
【问题描述】:

我正在解析一个 ServletRequest 对象(嗯,真的是一个 HttpServletRequest) 那里有 2 个参数,其中一个我知道有一个 XML 文件的值。

我怎样才能将该 XML 检索为 Doc 或 byte[] 或类似的,而不是 String?

【问题讨论】:

    标签: java xml


    【解决方案1】:

    如果您有一个包含 XML 的字符串,您可以通过从包装该字符串的 StringReader 进行解析,将其解析为 Document。除非您可以处理潜在的编码问题,否则不要将字符串转换为字节。

    builder.parse(new InputSource(new StringReader(theString))

    【讨论】:

    • 更强烈的是,不要将字符串转换为字节,因此解析器必须将字节转换回字符流。这是两个不必要的转码步骤,可能无法在字符集上达成一致并巧妙地破坏数据。
    • 谢谢,我会尽快重构到您的解决方案中
    【解决方案2】:
    • 您可以使用getBytes() 函数将String 轻松转换为byte[]

    • 如果你想要一个 Doc,你必须解析它。为此,您可以从 DocumentBuilderFactory 获取 DocumentBuilder 并让 parse()ByteArrayOutputStream 环绕该字节数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多