【问题标题】:org.xml.sax.SAXParseException: Content is not allowed in prolog (JSON)org.xml.sax.SAXParseException:prolog (JSON) 中不允许内容
【发布时间】:2018-12-03 05:24:13
【问题描述】:

我有一个包含 XML(包括正文和元数据)的字符串对象。 当我尝试解析它时,出现以下错误:

org.xml.sax.SAXParseException;行号:1;列号:1;序言中不允许有内容

我尝试使用My_XML.getBody() 函数,但没有帮助。 我需要一些关于如何编辑我的 XML 的帮助,以便它被允许。

示例 XML

{"body": <<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TccSubscriptionData xmlns="tcc.generated.com">
    <MessageKey>
        <MessageKey>12</MessageKey>
        <Receiver>asd</Receiver>
        <Timestamp>2018-06-20T14:33:22.968+02:00</Timestamp>
        <ResponseType>sdf</ResponseType>
        <CorrelationId>0</CorrelationId>
    </MessageKey>
</TccSubscriptionData>
, "metadata": {"field1": "aaa", "field2": 123, "field3": aaa, "field4": "aaa", "field5": 123, "field6": {"field7":"aaa","field8":"a12d","field9":"aaa"}}}

【问题讨论】:

  • 如果您尝试解析您发布的确切内容,{"body": &lt; 是不兼容 XML 的序言,, "metadata"... 也不是最后的内容。 XML 解析器只能解析 XML,不能解析 JSON 和 XML 的组合。

标签: java xml sax


【解决方案1】:

您的示例 XML 嵌入在 JSON 中,而您的 JSON 不是 well-formed

为了将您的 XML 表示为字符串,您必须用 " 将其包围,并且您必须将用作 XML 标记的 " 字符替换为 ' 字符或将它们转义为\"。您还必须删除换行符或replace them with \\n

那么,当然,作为M. le Rutte comments,请确保向 XML 解析器提供从 JSON 中提取的 XML,而不是 JSON 消息本身。

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 1970-01-01
    • 2013-07-05
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多