【问题标题】:remove <![CDATA[ tag from xml webserivce responses从 xml 网络服务响应中删除 <![CDATA[ 标记
【发布时间】:2013-03-26 03:32:10
【问题描述】:

我正在使用以下格式来响应网络服务。

<Name>abc</Name>
<Detail>
 <RESPONSE>
    <Age>20</Age>
    <Address>blahblah</Address>
    <Mobile>12345</Mobile>
 </RESPONSE>
</Detail>

由于要求,我需要在&lt;Detail&gt;&lt;/Detail&gt;标签内返回xml格式的数据。 在我的 java 类中,我使用 Xstream 解析并格式化为 xml 并放入 Detail 标签内。

但是当我使用 SOAPUI 进行测试时,我得到了额外的 &lt;![CDATA[&lt;RESPONSE&gt;.. &lt;&lt;/RESPONSE&gt;]]&gt; insdies Detail 标签。

如何避免在 xml 响应中使用这些 CDATA 标记?

【问题讨论】:

  • 转换成对象时会自动删除。
  • 如果您尝试将 XML as text 插入到 XML 元素的内容中,它会将其包装为 CDATA,因为它认为您正在尝试将文本元素与非法文本元素字符。
  • 那么当请求方解析这些信息时,可以吗?我应该注意删除这些标签还是以任何更好的方式将 XML 作为文本发送?有什么建议吗?

标签: java xml web-services


【解决方案1】:

&lt;![CDATAP[......]]&gt; 用于告诉它的XML meaning 不应被使用,并将其视为称为character data 的普通文本。因此 Parser 不会在其中寻找任何 XML 含义。 正如 Dave Newton 和 kshitij 所说,它将在将其转换为对象时自动删除。 如果你不应该解析它,因为它没有问题。

【讨论】:

  • 我接受它作为答案,因为我不需要像提供答案那样费心。对于其他可能像我一样首先使用 Web 服务感到困惑的人,而不是将信息解析为 XML ,我只是用来创建 bean 类,Web 服务将自动处理满足我需求的 XML 表示。
猜你喜欢
  • 1970-01-01
  • 2013-08-05
  • 2023-03-06
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2014-11-06
相关资源
最近更新 更多