function selectNodes(xmlnode,sXPath){
//如果浏览器是IE
if(window.ActiveXObject){
//使用IE的XPATH方式获得节点
return xmlnode.selectNodes(sXPath);
} else{
//FireFox类浏览器的处理方式
var oEvaluator = new XPathEvaluator();
if(oEvaluator != null){
var oResult = oEvaluator.evaluate(sXPath,xmlnode,null,
XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var nodes = new Array();
var node;
while(node=oResult.iterateNext()){
nodes.push(node);
}
return nodes;
} else{
return null;
}
}<br/>
function loadXML(flag, xml) {
var xmlDoc;
//针对IE浏览器
if (window.ActiveXObject) {
var aVersions = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0",
"MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0",
"MSXML2.DOMDocument","Microsoft.XmlDom"];
for (var i = 0; i < aVersions.length; i++) {
try {
//建立xml对象
xmlDoc = new ActiveXObject(aVersions[i]);
break;
} catch (oError) {
}
}
if (xmlDoc != null) {
//同步方式加载XML数据
xmlDoc.async = false;
//根据XML文档名称装载
if (flag == true) {
xmlDoc.load(xml);
} else {
//根据表示XML文档的字符串装载
xmlDoc.loadXML(xml);
}
//返回XML文档的根元素节点。 //xmlDoc现在已经表示一个dom树的根节点
//如果需要返回根节点,可以写成 return xmlDoc
return xmlDoc.documentElement;
}
} else {
//针对非IE浏览器
if (document.implementation && document.implementation.createDocument) {
/*
第一个参数表示XML文档使用的namespace的URL地址
第二个参数表示要被建立的XML文档的根节点名称
第三个参数是一个DOCTYPE类型对象,表示的是要建立的XML文档中DOCTYPE部分的定义,通常我们直接使用null
这里我们要装载一个已有的XML文档,所以首先建立一个空文档,因此使用下面的方式
*/
xmlDoc = document.implementation.createDocument("", "", null);
if (xmlDoc != null) {
//根据XML文档名称装载
if (flag == true) {
//同步方式加载XML数据,和IE的方式相同
xmlDoc.async = false;
xmlDoc.load(xml);
} else {
//根据表示XML文档的字符串装载
var oParser = new DOMParser();
// parseFromString的第一个参数就是xml的字符串,第二个参数固定是"text/xml"
xmlDoc = oParser.parseFromString(xml, "text/xml");
}
//返回XML文档的根元素节点。
return xmlDoc.documentElement;
}
}
}
return null;
}</br>
var xmldoc = loadXML(true,"yourxml.xml"
var nameText = selectNodes(xmldoc,"//学生/text()"););<br/>
取nameText的vaule值
//如果浏览器是IE
if(window.ActiveXObject){
//使用IE的XPATH方式获得节点
return xmlnode.selectNodes(sXPath);
} else{
//FireFox类浏览器的处理方式
var oEvaluator = new XPathEvaluator();
if(oEvaluator != null){
var oResult = oEvaluator.evaluate(sXPath,xmlnode,null,
XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var nodes = new Array();
var node;
while(node=oResult.iterateNext()){
nodes.push(node);
}
return nodes;
} else{
return null;
}
}<br/>
function loadXML(flag, xml) {
var xmlDoc;
//针对IE浏览器
if (window.ActiveXObject) {
var aVersions = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0",
"MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0",
"MSXML2.DOMDocument","Microsoft.XmlDom"];
for (var i = 0; i < aVersions.length; i++) {
try {
//建立xml对象
xmlDoc = new ActiveXObject(aVersions[i]);
break;
} catch (oError) {
}
}
if (xmlDoc != null) {
//同步方式加载XML数据
xmlDoc.async = false;
//根据XML文档名称装载
if (flag == true) {
xmlDoc.load(xml);
} else {
//根据表示XML文档的字符串装载
xmlDoc.loadXML(xml);
}
//返回XML文档的根元素节点。 //xmlDoc现在已经表示一个dom树的根节点
//如果需要返回根节点,可以写成 return xmlDoc
return xmlDoc.documentElement;
}
} else {
//针对非IE浏览器
if (document.implementation && document.implementation.createDocument) {
/*
第一个参数表示XML文档使用的namespace的URL地址
第二个参数表示要被建立的XML文档的根节点名称
第三个参数是一个DOCTYPE类型对象,表示的是要建立的XML文档中DOCTYPE部分的定义,通常我们直接使用null
这里我们要装载一个已有的XML文档,所以首先建立一个空文档,因此使用下面的方式
*/
xmlDoc = document.implementation.createDocument("", "", null);
if (xmlDoc != null) {
//根据XML文档名称装载
if (flag == true) {
//同步方式加载XML数据,和IE的方式相同
xmlDoc.async = false;
xmlDoc.load(xml);
} else {
//根据表示XML文档的字符串装载
var oParser = new DOMParser();
// parseFromString的第一个参数就是xml的字符串,第二个参数固定是"text/xml"
xmlDoc = oParser.parseFromString(xml, "text/xml");
}
//返回XML文档的根元素节点。
return xmlDoc.documentElement;
}
}
}
return null;
}</br>
var xmldoc = loadXML(true,"yourxml.xml"
var nameText = selectNodes(xmldoc,"//学生/text()"););<br/>
取nameText的vaule值
import org.dom4j.Element;
import org.dom4j.io.SAXReader;public class ParseXML {
public String getXMLValue(String filename)throws Exception{
Document doc = null;
SAXReader reader = new SAXReader();
doc = reader.read(new File(filename));
Element root = doc.getRootElement();
return root.getTextTrim().toString();
}
public static void main(String args[]) throws Exception{
String filename = "c:\\aa.xml";
ParseXML parseXML = new ParseXML();
System.out.println(parseXML.getXMLValue(filename));
}
}
import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;public class DocumentTest {
public static Document createDOM(String filePath) {
Document document = null;
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
document = builder.parse(filePath);
} catch (Exception e) {
// logger.error(e.getMessage());
}
return document;
}
public void test(Document document){
Node firstNode = document.getFirstChild();
String text = firstNode.getTextContent();
System.out.println("text: "+text);
NodeList nodeList = firstNode.getChildNodes();
for(int i = 0 ; i < nodeList.getLength(); i++){
Node childNode = nodeList.item(i);
if(childNode.getNodeType()==3){
String nodeValue =childNode.getNodeValue().trim();
if(!"".equals(nodeValue)){
System.out.println("nodevalue: "+nodeValue);
}
}
}
}
public static void main(String ss[]){
String filePath = "f:\\test\\test.xml";
DocumentTest dt = new DocumentTest();
Document document = dt.createDOM(filePath);
dt.test(document);
}
}