请问在SOAPElement处理时如何避免将标签字符<>转换成转义字符><

llaabb 2008-10-17 11:21:26
我的代码是这样的:
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage message = messageFactory.createMessage();
SOAPEnvelope env = message.getSOAPPart().getEnvelope();
SOAPBody body = env.getBody();
有一个字符串比如是strBody="<E1><E2>aaa</E2></E1>";
用下面的方法
body.addTextNode(strBody);
这样会把strBody中的<、>转换成转义字符><
但是我想要的结果是不转换,这样在SOAPBody里会有希望产生的SOAPElement,
如果直接是xml处理的话,可以通过XMLWriter的setEscapeText方法设置,请问在soap消息里怎么设置呢?谢谢!!!
...全文
1110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
accp206 2008-10-19
  • 打赏
  • 举报
回复
看来楼主跟我一样,也是个比较懒惰的人,哈哈!
另外,楼主对于DOM还不够熟悉。

addTextNode()方法是创建文本节点,而文本节点只能包含文本,里面是不可能包含元素节点的,所以对于<El></E1>这样的元素肯定会转换的,不然就不是文本节点了,而变成一个复杂的元素节点了。所以我敢断言,Java API中没有任何现成的方法能实现楼主的目的。

楼主还是一步一步来吧。参考代码:
SOAPElement e1 = body.addChildElement(new QName("E1"));
SOAPElement e2 = e1.addChildElement(new QName("E2"));
e2.addTextNode( "aaa" );
tiyuzhongxin789 2008-10-19
  • 打赏
  • 举报
回复
这样你放在 <textarea> </textarea>之间的任何特殊字符都不会被转换,
这里只是介绍解决方法
  • 打赏
  • 举报
回复
或者也可以用这个方法:
/*将字串转为html格式*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("&", "&");
s = s.replaceAll("<", "<");
s = s.replaceAll(">", ">");
s = s.replaceAll(" ", " ");
// s = s.replaceAll("\n", "<br/>");
// s = s.replaceAll("'", "'");
return s;
}

/*将html格式转为字串*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("&","&");
s = s.replaceAll("<","<");
s = s.replaceAll(">",">");
s = s.replaceAll(" "," ");
//s = s.replaceAll("<br/>","\n");
//s = s.replaceAll("'","'");
return s;
}
  • 打赏
  • 举报
回复
<body>
<textarea id='t' rows=20 cols=20></textarea>

<script>
document.getElementById('t').innerText='a<&>';
</script>
</body>

比如像上面这样:
这样你放在<textarea></textarea>之间的任何特殊字符都不会被转换,
这里只是介绍解决方法
阎罗 2008-10-17
  • 打赏
  • 举报
回复
为什么不把<E1> <E2>aaa </E2> </E1>以Element方式作为body的孩子节点添加到body下面呢?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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