本来是在webservice区发的,没人解答,来这边再问问看

WingForce 2010-01-01 09:02:53
因为某种原因,基于gSOAP的webservice需要返回一个xml给client
但是这个xml的schema是不确定的,而webservice本身不需要关心这个xml的schema
大概是这样:

1,返回的SOAP消息中有一个element,用于传输这个xml,比如如下:


<response_data> <!-- 这里是一个用户自定义的xml,service本身不需要关心 --> </response_data>



2,于是把response_data当作一个字符串来处理,如下声明

    struct XXXXMessage { char* response_data; };



然后将xml当作字符串copy到里面去,在返回给client。

问题是,这样返回的结果中

    <response_data> <!-- 这里的大于和小于号都会被gSOAP转义 --> </response_data>



想问一下,如何制止gSOAP对这里的xml做转义动作
...全文
185 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
panrui501 2012-02-17
  • 打赏
  • 举报
回复
把不需要解析的内容放到CDATA内部就行了。

在CDATA内部的所有内容都会被解析器忽略。

如果文本包含了很多的"<"字符和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。

一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束,
lhslktg 2010-01-04
  • 打赏
  • 举报
回复
jf
arong1234 2010-01-02
  • 打赏
  • 举报
回复
使用平台有些东西可能是没有办法的
不知道把你的xml放在CDATA节中可以么?
  • 打赏
  • 举报
回复
你得一级一级的添加。
cattycat 2010-01-02
  • 打赏
  • 举报
回复
xml不是可以支持自定义标签嵌套吗,你说的gSOAP转义是不是把这里的<>之间的又解析成元素了还是?
要不你自己在这个response_data之间定义几个标签,然后client端把这些元素组合成一个message应该行吧。
Contemplating 2010-01-02
  • 打赏
  • 举报
回复
建议仔细研究一下gSOAP。
zhang19900707 2010-01-02
  • 打赏
  • 举报
回复
路过》。。
beginnow 2010-01-01
  • 打赏
  • 举报
回复
转义的起始位置和长度不能指定吗?

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧