org.xml.sax.SAXParseException:序言(JSON)中不允许内容

时间:2018-06-24 12:13:36

标签: java xml sax

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

  

org.xml.sax.SAXParseException; lineNumber:1; columnNumber: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"}}}

1 个答案:

答案 0 :(得分:0)

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

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

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