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值

解决方案 »

  1.   

    import java.io.File;import org.dom4j.Document;
    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));
    }
    }
      

  2.   

    import javax.xml.parsers.DocumentBuilder;
    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);
    }
    }