首页 > 解决方案 > org.xml.sax.SAXParseException:prolog (JSON) 中不允许内容

问题描述

我有一个包含 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"}}}

标签: javaxmlsax

解决方案


您的示例 XML 嵌入在 JSON 中,并且您的 JSON 格式不正确

为了将您的 XML 表示为字符串,您必须用 将其括起来",并且您必须将"用作 XML 标记的字符替换为'字符或将它们转义为\". 您还必须删除换行符或将其替换为\\n.

然后,当然,正如M. le Rutte 评论的那样,确保您向 XML 解析器提供了从 JSON 中提取的 XML,而不是 JSON 消息本身。


推荐阅读