先看一下xml的格式,理解他的属性,节点,文本,域名 等等 都是什么。然后就好去解析他。第一个 <id>xyz</id> xyz是text的值,当然你可以通俗的理解为一个节点的vlaue第二个 <id value="xyz"/> 这个是id节点的value属性的值

解决方案 »

  1.   


    NodeList nodeList=doc.getElementsByTagName(elementName);
    Element el1=(Element)nodeList.item(0);
    System.out.println(el1.getAttribute("att1"));节点:
    <SavePath att1="xxx">/userfiles/fileUpload</SavePath>
    输出 xxx
      

  2.   


    public class XmlProcessor {
    private Document doc=null;
    /**
     * param1 xmlPath 指定XML文件的本地路径 
     * @param xmlPath
     */
    public XmlProcessor(String xmlPath){
    //很明显该类是一个单例,先获取产生DocumentBuilder工厂
      //的工厂,在通过这个工厂产生一个DocumentBuilder,
      //DocumentBuilder就是用来产生Document的
      DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
      try{
      DocumentBuilder db=dbf.newDocumentBuilder();  
      //这个Document就是一个XML文件在内存中的镜像
      doc=db.parse(new File(xmlPath)); 
       }catch(Exception e){
      System.out.println("获取文档对象失败");
      }
    }
    /**
     * 
     * @param objInputStream XML 文件的InputStream输入流
     */
    public XmlProcessor(InputStream objInputStream){
    //很明显该类是一个单例,先获取产生DocumentBuilder工厂
      //的工厂,在通过这个工厂产生一个DocumentBuilder,
      //DocumentBuilder就是用来产生Document的
      DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
      try{
      DocumentBuilder db=dbf.newDocumentBuilder();  
      //这个Document就是一个XML文件在内存中的镜像
      doc=db.parse(objInputStream); 
       }catch(Exception e){
      System.out.println("获取文档对象失败");
      }
    }
    public String getElementContent(String elementName){
    String strReturn="";
    try{
    NodeList nodeList=doc.getElementsByTagName(elementName);

    Element el1=(Element)nodeList.item(0);
    System.out.println(el1.getAttribute("att1"));//获取属性的值,你应该再写在另一个方法里边
    /*
    Node node0=nodeList.item(0);
    strReturn=node0.getFirstChild().getNodeValue();
                            */

    }catch(Exception e){
    strReturn=e.toString().replaceAll("\n", "");
    }
    return strReturn;
    }
    public String getElementContent(String argfather,String son){
    String strReturn="";
    NodeList nodeList=doc.getElementsByTagName(argfather);
    Node node0=nodeList.item(0);
    NodeList objChildNodeList=node0.getChildNodes();
    for(int i=0;i<objChildNodeList.getLength();i++){
    Node temp=objChildNodeList.item(i);
    //System.out.println(temp.getNodeValue());
    if(son.equals(temp.getNodeName())){
    strReturn=temp.getFirstChild().getNodeValue().trim();
    break;
    }
    }
    return strReturn;
    }
    public static void main(String[] args){
    XmlProcessor xml=new XmlProcessor("D:\\_eclipse2\\MBASite200812291326\\src\\DBCfg\\FilePath.xml");
    xml.getElementContent("SavePath");
    }
    }
      

  3.   

    <id value="XYZ"/>这样格式得XML
    使用getNodeValue当然是null ,你是获取value,value="XYZ"是你的一个属性!!!