请问XFire输出的XML里面如何去掉那些烦人的xmlns

nethermit 2006-11-21 03:38:37
XFire开发WebService巨快,可是,出来的SOAP response里面xmlns也忒多了,占用大量带宽,受不了,想要灭掉它,查遍文档也没个头绪。请教众位高人一下,谢谢

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<GetTermsResponse xmlns="http://********/xxxxService">
<out>
<ns1:TermObject xmlns:ns1="http://********.com">
<endOffset xmlns="http://********.com">2</endOffset>
<startOffset xmlns="http://********.com">0</startOffset>
<text xmlns="http://********.com">哈哈</text>
<type xmlns="http://********.com">0</type>
</ns1:TermObject>
<ns1:TermObject xmlns:ns1="http://********.com">
<endOffset xmlns="http://********.com">4</endOffset>
<startOffset xmlns="http://********.com">2</startOffset>
<text xmlns="http://********.com">呵呵</text>
<type xmlns="http://********.com">0</type>
</ns1:TermObject>
<ns1:TermObject xmlns:ns1="http://********.com">
<endOffset xmlns="http://********.com">5</endOffset>
<startOffset xmlns="http://********.com">4</startOffset>
<text xmlns="http://********.com">的</text>
<type xmlns="http://********.com">0</type>
</ns1:TermObject>
<ns1:TermObject xmlns:ns1="http://********.com">
<endOffset xmlns="http://********.com">7</endOffset>
<startOffset xmlns="http://********.com">5</startOffset>
<text xmlns="http://********.com">嘿嘿</text>
<type xmlns="http://********.com">0</type>
</ns1:TermObject>
<ns1:TermObject xmlns:ns1="http://********.com">
<endOffset xmlns="http://********.com">10</endOffset>
<startOffset xmlns="http://********.com">7</startOffset>
<text xmlns="http://********.com">XML</text>
<type xmlns="http://********.com">0</type>
</ns1:TermObject>
...全文
628 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddnn 2006-12-07
  • 打赏
  • 举报
回复
文档里好像见过

可以指定统一的一个namespace 好像在user guide的下半部分

实在没时间,LZ自己再看看吧

ps:LZ用的是JSR181吗?
treeroot 2006-12-07
  • 打赏
  • 举报
回复
好像可以指定ns,我觉得这些不应该去掉呀
nethermit 2006-12-04
  • 打赏
  • 举报
回复
再顶一下
nethermit 2006-11-21
  • 打赏
  • 举报
回复
to zxh2208180(九天玄狐):

谢谢,我想您可能误会了,我想问的是服务器端的SOAP response里面如何去掉大量的xmlns,谢谢
zxh2208180 2006-11-21
  • 打赏
  • 举报
回复
先把属性依次拿出来,这样就可以判定我要留下什么了,
就像这样(要留下什么你自己改下)

package com.conxml;
import org.jdom.input.*;
import org.jdom.*;
import java.util.*;

public class ReadAllXML {
public void ReadXML1() throws Exception {

SAXBuilder builder = new SAXBuilder();

Document read_doc = builder.build("struts-config.xml");

Element stu = read_doc.getRootElement();

System.out.println("根元素:"+stu.getName());

// List list=null;
List lchildren=stu.getChildren();

Element oneLevelDeep=null;

Element towLevelDeep=null;

Element threeLevelDeep=null;

Element foreLevelDeep=null;

Iterator itr = (lchildren).iterator();

while(itr.hasNext()) {

oneLevelDeep = (Element)itr.next();

System.out.println("第一层子元素(根的直接子)"+oneLevelDeep.getName());
System.out.println(oneLevelDeep.getName()+"的属性"+oneLevelDeep.getAttributes());
//List l1= stu.getChildren("first");
// List l1=oneLevelDeep.getAttributes();
// Iterator itrl1 = (l1).iterator();
// while(itrl1.hasNext()) {
// Element e = (Element)itrl1.next();
// System.out.println(e.getName());
// }
// for(int i = 0;i < l1.size();i++) {
//
// Element e = (Element)l1.get(i);
// System.out.println(e.getName());
// String str_number = e.getAttributeValue(e.getName());
// System.out.println(str_number);
// }
//System.out.println(stu.getAttributeValue(oneLevelDeep.getName()));

System.out.println("值:"+stu.getChildText(oneLevelDeep.getName()));

List towchildren = oneLevelDeep.getChildren();

Iterator itr1 = (towchildren).iterator();

while(itr1.hasNext()) {

towLevelDeep = (Element)itr1.next();

System.out.println("第2层子元素"+towLevelDeep.getName());
System.out.println(towLevelDeep.getName()+"的属性"+towLevelDeep.getAttributes());

System.out.println("值:"+oneLevelDeep.getChildText(towLevelDeep.getName()));

List threechild = towLevelDeep.getChildren();

Iterator itr2 = (threechild).iterator();

while(itr2.hasNext()) {

threeLevelDeep= (Element)itr2.next();

System.out.println("第3层子元素"+threeLevelDeep.getName());

System.out.println(threeLevelDeep.getName()+"的属性"+threeLevelDeep.getAttributes());

System.out.println("值:"+towLevelDeep.getChildText(threeLevelDeep.getName()));

List forechild = threeLevelDeep.getChildren();

Iterator itr3 = (forechild).iterator();

while(itr3.hasNext()) {

foreLevelDeep= (Element)itr3.next();

System.out.println("第4层子元素"+foreLevelDeep.getName());

System.out.println(foreLevelDeep.getName()+"的属性"+foreLevelDeep.getAttributes());

System.out.println("值:"+threeLevelDeep.getChildText(foreLevelDeep.getName()));

List fivechild = threeLevelDeep.getChildren();
}
}
}
}
}

public static void main(String[] args) throws Exception {

ReadAllXML rx = new ReadAllXML();

rx.ReadXML1();
}


}

67,513

社区成员

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

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