import java.io.StringReader;
import java.util.HashMap;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.XPath;
import org.dom4j.io.SAXReader;
import org.xml.sax.InputSource;
public class Test {
//获取document对象
public Document getDocument(String xml) throws DocumentException
{
StringReader read = new StringReader(xml);
//创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source = new InputSource(read);
//创建一个新的SAXBuilder
SAXReader sb = new SAXReader();
//通过输入源构造一个Document
Document doc = sb.read(source);
//取的根元素
return doc;
}
//获取带有命名空间的节点
public Element getDestElement(Document doc)
{
HashMap<String,String> xmlMap = new HashMap<String,String>();
xmlMap.put("tns","http://www.99bill.com/schema/fo/settlement");
XPath xpath=doc.createXPath("//tns:status"); //要获取哪个节点,改这里就可以了
xpath.setNamespaceURIs(xmlMap);
return (Element)xpath.selectSingleNode(doc);
}
public void jie()
{
String b=
"<tns:batchid-query-response xmlns:ns0='http://www.99bill.com/schema/commons' xmlns:ns1='http://www.99bill.com/schema/fo/commons' xmlns:tns='http://www.99bill.com/schema/fo/settlement'>"+
"<tns:response-header>"+
"<tns:version xmlns:tns='http://www.99bill.com/schema/fo/commons'>"+
"<ns0:version>1.0.1</ns0:version>"+
"<ns0:service>fo.api.query</ns0:service>"+
"</tns:version>"+
"<ns1:time>20100811160633</ns1:time>"+
"</tns:response-header>"+
"<tns:response-body>"+
"<tns:query-condition>"+
"<tns:batch-no>SZ0806003</tns:batch-no>"+
"<tns:page>1</tns:page>"+
"<tns:page-size>20</tns:page-size>"+
"<tns:list-flag>0</tns:list-flag>"+
"</tns:query-condition>"+
"<tns:total-page>1</tns:total-page>"+
"<tns:total-cnt>2</tns:total-cnt>"+
"<tns:batchList>"+
"<tns:payer-acctCode>1001162953701</tns:payer-acctCode>"+
"<tns:batch-no>SZ0806003</tns:batch-no>"+
"<tns:apply-date>20100806103600</tns:apply-date>"+
"<tns:name>大批量结算产品测试账户005</tns:name>"+
"<tns:total-amt>10000</tns:total-amt>"+
"<tns:total-cnt>2</tns:total-cnt>"+
"<tns:fee-type>1</tns:fee-type>"+
"<tns:cur>RMB</tns:cur>"+
"<tns:checkAmt-cnt>0</tns:checkAmt-cnt>"+
"<tns:batch-fail>1</tns:batch-fail>"+
"<tns:recharge-type>0</tns:recharge-type>"+
"<tns:auto-refund>0</tns:auto-refund>"+
"<tns:phoneNote-flag>0</tns:phoneNote-flag>"+
"<tns:merchant-memo1>memo1</tns:merchant-memo1>"+
"<tns:merchant-memo2>memo2</tns:merchant-memo2>"+
"<tns:merchant-memo3>memo3</tns:merchant-memo3>"+
"<tns:status>111</tns:status>"+
"<tns:order-seq-id>7368788</tns:order-seq-id>"+
"<tns:total-applySucc-amt>10000</tns:total-applySucc-amt>"+
"<tns:total-applySucc-cnt>2</tns:total-applySucc-cnt>"+
"<tns:total-fee>1000</tns:total-fee>"+
"<tns:finishPay-date>20100806105604</tns:finishPay-date>"+
"<tns:memo/>"+
"<tns:pay2bank-list>"+
"<tns:pay2bank-result>"+
"<tns:apply-date>20100806103600</tns:apply-date>"+
"<tns:end-date>20100806105604</tns:end-date>"+
"<tns:order-seq-id>7369556</tns:order-seq-id>"+
"<tns:fee>500</tns:fee>"+
"<tns:status>112</tns:status>"+
"<tns:error-code>9113</tns:error-code>"+
"<tns:error-msg>客户姓名不符</tns:error-msg>"+
"<tns:bank-error-code/>"+
"<tns:bank-error-msg/>"+
"<tns:pay2bank>"+
"<ns1:merchant-id>20100806_005</ns1:merchant-id>"+
"<ns1:memo>快钱交易备注</ns1:memo>"+
"<ns1:bank-purpose>理赔</ns1:bank-purpose>"+
"<ns1:bank-memo>银行交易备注</ns1:bank-memo>"+
"<ns1:payee-note>付款</ns1:payee-note>"+
"<ns1:payee-mobile>13891819014</ns1:payee-mobile>"+
"<ns1:payee-email>zhenzhen.sun@99bill.com</ns1:payee-email>"+
"<ns1:period/>"+
"<ns1:merchant-memo1>1</ns1:merchant-memo1>"+
"<ns1:merchant-memo2>2</ns1:merchant-memo2>"+
"<ns1:merchant-memo3>3</ns1:merchant-memo3>"+
"</tns:pay2bank>"+
"</tns:pay2bank-result>"+
"</tns:pay2bank-list>"+
"</tns:batchList>"+
"</tns:response-body>"+
"</tns:batchid-query-response>";
try {
Document doc=this.getDocument(b);
Element el=this.getDestElement(doc);
System.out.println("*********"+el.getText());
} catch (DocumentException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public static void main(String[] args) {
Test t=new Test();
t.jie();
}
}
分享到:
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
此方法解析xml时,不受xml层级的限制。文件中包含了说明文档,java类,以及所使用到的*.jar。并对代码做了注释让你一目了然……
Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档
NULL 博文链接:https://qiaokeli.iteye.com/blog/1790138
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
dom4j解析节点名称和值,放入一个string类型的xml字符串输出标签对应的名称以及值的map
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
很详细的文档 可以借鉴下 希望对你有帮助
dom4j解析XML文档.ppt
Dom4j解析xml与配置文件的小例子,简单的Dom4j的小应用。
dom4j解析xml实例,dom4j解析xml实例,dom4j解析xml实例,
xml解析,dom4j解析,xml循环节点处理,java代码 jar包执行20190331.rar
java dom4j 解析xml文档 使用java操作xml 例如创建 读取 删除 等等
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
dom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jar
dom4j解析xml文件的压缩包,完整版。对jdom进行了封装。包含源码,jar包以及所需的全部内容。
利用DOM4J解析SOAP中的各个元素的值,在SOAP消息的收发中可以有一点借鉴的地方
//User.hbm.xml表示你要解析的xml文档 // Document document = reader.read(new File("User.hbm.xml")); // 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element ...