摘 使用dom4j解析帶有命名空間的XML

2021-10-01 04:43:17 字數 901 閱讀 7985

在使用dom4j解析xml時,遇到xml內容中同時帶有自定義命名空間和預設命名空間的問題,百思不得其解,直到拜讀了上面鏈結的文章,問題終於得以解決,特此發文希望也可以幫助到有同樣疑惑的同學。

xml內容如下:

<?xml version="1.0" encoding="utf-8"?>

true

未知的錯誤。

<?xml version="1.0" standalone="yes"?>

這段xml本身應該為soap報文,但是因為服務發布方的原因,無法使用ws客戶端**直接訪問,只能以http方式訪問wsdl,獲取soap報文之後,要二次解析才能獲取到ws介面的返回值,即元素內容。單純以普通xml來看,此xml有兩個命名空間,並且我要獲取的元素使用的是預設命名空間。

解析元素的**如下:

//前後**省略

//......

saxreader saxreader = new saxreader();

document doc = saxreader.read(new bytearrayinputstream(xml.getbytes()));

//字首——命名空間對映

map map = new hashmap();

map.put("mypre", "");

xpath xpath = doc.createxpath("//mypre:retxml");

xpath.setnamespaceuris(map);

node node = xpath.selectsinglenode(doc);

string text = node.gettext();

//前後**省略

//......

DOM4J處理XML帶有命名空間的四種方法

url 先說前兩個方法,是從網上看來的。摘抄如下 xml example 再說前三種方法,也是從網上看來的。d eport.css 第乙個方案.設定你的xpath的命名空間setnamespaceuris public class transferxml 第二個解決方案 設定你的documentfa...

使用dom4j解析XML

1 工具 dom4j jar包 2 用法 a 引包將dom4j jar包放入root bin目錄下 1 建立乙個saxreader 物件 saxreader sax new saxreader 2 呼叫sax.read 需要讀取檔案的file物件 file file new file url doc...

dom4j 使用dom4j生成xml

使用org.dom4j.element 建立xml 生成service.xml檔案 param tran 交易物件 param filepath 資料夾路徑 public static void exportservicexml listtranlist,string filepath servic...