我们有这段代码在 SAAJ SOAP 消息中创建 XML 消息:
OdysseyMessageXML.addTextNode("<Message
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1'
UserID='1'
Source='APIMessage'><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>"
);
消息完成后,它看起来像这样:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tyl="http://www.tylertech.com/"><SOAP-ENV:Header/>
<SOAP-ENV:Body><tyl:OdysseyMsgExecution><tyl:OdysseyMessageXML><Message
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1'
UserID='1'
Source='APIMessage'><CaseNumber>T-4-CV-2011-004617</CaseNumber>
</Message></tyl:OdysseyMessageXML>
<tyl:siteKey>NMODYSSEYMETRO</tyl:siteKey>
</tyl:OdysseyMsgExecution></SOAP-ENV:Body></SOAP-ENV:Envelope>
注意 FindCaseByCaseNumber 和 NodeID 周围的 ' 标记没有被转义。我需要做什么才能得到这样的结果:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tyl="http://www.tylertech.com/">
<soapenv:Header/>
<soapenv:Body>
<tyl:OdysseyMsgExecution>
<tyl:odysseyMessageXML><Message
MessageType="FindCaseByCaseNumber" NodeID="1"
ReferenceNumber="1" UserID="1" Source="
APIMessage">
<CaseNumber>T-4-CV-2011-004617</CaseNumber>
</Message></tyl:odysseyMessageXML>
<tyl:siteKey> NMODYSSEYMETRO </tyl:siteKey>
</tyl:OdysseyMsgExecution>
</soapenv:Body>
</soapenv:Envelope>
用 " 围绕 FindCaseByCaseNumber
谁能告诉我我们做错了什么?我们已经在代码 ''' 和 """ 的 addTextNode 部分进行了尝试,但未能成功使引号转义。
谢谢!莱斯利
编辑:
在我们创建消息的这部分代码中:
OdysseyMessageXML.addTextNode("<Message
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1'
UserID='1'
Source='APIMessage'><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>"
);
我们需要它(请参阅每个值周围的双引号):
OdysseyMessageXML.addTextNode("<Message
MessageType="FindCaseByCaseNumber" NodeID="1" ReferenceNumber="1"
UserID="1"
Source="APIMessage"><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>"
);
不幸的是,这不是有效的 java 代码。通过在 FindCaseByCaseNumber 处放置另一个 " 来结束字符串。我们尝试放置 2 和 3 个双引号,以便在我们的最终消息中转义单个双引号。
更新:似乎接受我们请求的 API 是区分大小写的,我们有一个大写的 O 而不是小写的 o,这最终是问题所在,毕竟不是字符转义!