java - 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"}}}
解决方案
您的示例 XML 嵌入在 JSON 中,并且您的 JSON 格式不正确。
为了将您的 XML 表示为字符串,您必须用 将其括起来"
,并且您必须将"
用作 XML 标记的字符替换为'
字符或将它们转义为\"
. 您还必须删除换行符或将其替换为\\n
.
然后,当然,正如M. le Rutte 评论的那样,确保您向 XML 解析器提供了从 JSON 中提取的 XML,而不是 JSON 消息本身。
推荐阅读
- powershell - VsCode 挂起/冻结状态栏中的“正在启动 powershell”
- api - (NoSuchMethodError:在 null 上调用了 getter 'length'。接收方:null 尝试调用:length)
- java - 从另一个提供循环依赖的模块打开活动
- c# - 将 JSON 转换为具有泛型类型的列表
- tableau-api - 从命令行运行流程时出现 TabPy Server 配置错误
- css - TypeScript 编码的菜单和网格无法正确显示
- ios - 为什么 Application Loader 找不到我的图标(错误代码:ERROR ITMS-90023)?
- web-crawler - 从种子 URL 到所有深度的所有子发现 URL 发出自定义元数据
- swift - 如何绑定 ObservableObject?
- php - Laravel CSRF 漏洞