在使用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...