900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java 获取xml所有节点_获取XML下的所有节点(父节点及子节点)

java 获取xml所有节点_获取XML下的所有节点(父节点及子节点)

时间:2022-04-26 10:18:19

相关推荐

java 获取xml所有节点_获取XML下的所有节点(父节点及子节点)

展开全部

xml结构

本方案用来解决XML根据父节点的属性得到指定子节点的属性的值

需要的jar包:

jar包本方案的xml结构为以下格式62616964757a686964616fe58685e5aeb931333431366338:看图

packagecom.itqingyou.xml;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.List;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.dom4j.Attribute;

importorg.dom4j.Document;

importorg.dom4j.DocumentException;

importorg.dom4j.Element;

importorg.dom4j.io.SAXReader;

publicclassCityXMLServletextendsHttpServlet{

privatestaticfinallongserialVersionUID=1L;

@SuppressWarnings("unchecked")

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("utf-8");

response.setContentType("text/xml;charset=utf-8");//发送xml这里要修改

/*

*获取省份名称,加载该省对应的元素把元素转换成字符串发送非客户端

*

*1.获取省份名称2.使用省份名称查找对应的元素3.再把元素转换成字符串发送!

*

*/

try{

/*

*得到Document

*/

SAXReaderreader=newSAXReader();

InputStreaminput=this.getClass().getResourceAsStream("/China.xml");

Documentdoc=reader.read(input);

/*

*获取参数

*/

Stringpname=request.getParameter("pname");//获取省份名称

System.out.println(pname);

//ElementproEle=

//(Element)doc.selectSingleNode("//province[@name='"+pname+"']"+"//city[]");

ElementproEle=(Element)doc.selectSingleNode("//province[@name='"+pname+"']");

//ListarrList=

//doc.selectNodes("//province[@name="+pname+"']/city/@name");

这里是重点指定父节点后,再得到字节点的指定属性

ListarrList=doc.selectNodes("//province[@name='"+pname+"']/"+"city/@name");

StringBuildersb=newStringBuilder();

for(inti=0;i

sb.append(arrList.get(i).getValue());//把每个属性的值存放到sb中

if(i

sb.append(",");

}

}

response.getWriter().print(sb);

System.out.println(sb);

//Stringvalue=arrList.get(1).getValue();

//System.out.println(value);

StringasXML=proEle.asXML();//把元素转换成字符串

//System.out.println(asXML);

//response.getWriter().print(asXML);

}catch(DocumentExceptione){

e.printStackTrace();

}

}

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

}

id:清幽

需要jar包可以回复我

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。