1.載入xml
從檔案載入
saxreader reader = newsaxreader();
string filepath = "/xmlfile/" + filename + ".xml";
document document = null
;
try
catch
(documentexception e)
return document;
通過字串轉換
document document = documenthelper.parsetext(xmlstring);
2.驗證
/*** 通過xsd驗證xml的準確性**
@param
xsdfilename xsd路徑 要全路徑
* @param
xmlstring xml檔案
* @return
*/public
static
string validatexsd(string xsdfilename, string xmlstring)
return
error;
} else
return "";
} catch
(exception ex)
}
注意,驗證xsd的路徑名要是完整的全路徑,如e://xml/xsd/test.xsd
3.xpath
<?xml version="1.0" encoding="utf-8"
?>
<
root
>
<
name
value
="張三"
>
<
address
>福建省廈門市***
address
>
name
>
root
>
獲取值:福建省廈門市***
document.selectsinglenode("//name/address").gettext();
獲取name的屬性value
document.selectsinglenode("//name/@value").gettext();
命名空間的處理:當xml有命名空間時,xpath的查詢也要加上命名空間,且只能查詢乙個層級
map map = newhashmap();
map.put("ns", namespace);
xpath x = newxmldoc.createxpath("//ns:name");
這裡只查詢一級name是有值的,但是如果想同時查詢name下面的address,則返回的是空
map map = newhashmap();
map.put("ns", namespace);
xpath x = newxmldoc.createxpath("//ns:name");
x.setnamespaceuris(map);
node node= (x.selectsinglenode(rootnode));//
有值 x = newxmldoc.createxpath("//ns:name/address");
node node2= (x.selectsinglenode(rootnode));//
值為空
如果想查詢address上的值,則必須在name節點上查詢,如
map map = newhashmap();
map.put("ns", namespace);
xpath x = newxmldoc.createxpath("//ns:name");
x.setnamespaceuris(map);
node node= (x.selectsinglenode(rootnode));//
有值 x = newxmldoc.createxpath("//ns:address");
x.setnamespaceuris(map);
node node2= (x.selectsinglenode(node));//
有值
所以想一次性用xpath查詢,最好先把命名空間去掉
4.增加命名空間
document newxmldoc =documenthelper.createdocument();//頭部構建
element rootnode =newxmldoc.addelement(strmsgmodelcode);
rootnode.addnamespace("", namespace);
第乙個引數是空
5.在固定節點插入
要迴圈遍歷節點,然後呼叫elements.add方法。這個真沒有.net的linq to xml方便。
listelements =rootnode.elements();int index = 0;
for(element element : elements)
}
dom4j 使用dom4j生成xml
使用org.dom4j.element 建立xml 生成service.xml檔案 param tran 交易物件 param filepath 資料夾路徑 public static void exportservicexml listtranlist,string filepath servic...
使用dom4j工具 xml總結
1.io流 bufferedreader字元流readline 擷取 不可行 2.xml解析 dom4j 查 標籤 element name elements name elements getname 標籤名 getrootelement 根標籤 屬性 attributevalue name 屬性...
dom4j簡單使用
公司這邊是用dom4j,主要是用來解析xml的,一般有這麼幾個操作 1.建立xml文件 org.dom4j.document doc documenthelper.createdocument 2.建立根元素並新增 element root documenthelper.createelement ...