可以在把JAVA包引进去,然后使用XPATH指定路径就可以取得值拉
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;import org.jaxen.XPath;
import org.jaxen.XPathSyntaxException;
import org.jaxen.JaxenException;import org.jaxen.jdom.JDOMXPath;import java.util.List;
import java.util.Iterator;public class JDOMDemo 
{
    public static void main(String[] args)
    {
        if ( args.length != 2 )
        {
            System.err.println("usage: JDOMDemo <document url> <xpath expr>");
            System.exit( 1 );
        }        try
        {
            SAXBuilder builder = new SAXBuilder();
            
            Document doc = builder.build("xml文件");
            
            XPath xpath = new JDOMXPath("/ResourceParams/parameter/name");//你所查找得路径
            
            List results = xpath.selectNodes( doc );
            
            Iterator resultIter = results.iterator();           
            while ( resultIter.hasNext() )
            {
                String name = resultIter.getText();//取得指定路进下得值 密码也是一样得方法
            }
        }
        catch (JDOMException e)
        {
            e.printStackTrace();
        }
        catch (XPathSyntaxException e)
        {
            System.err.println( e.getMultilineMessage() );
        }
        catch (JaxenException e)
        {
            e.printStackTrace();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

解决方案 »

  1.   

    D:\Program Files\Tomcat 4.1\webapps\ROOT\WEB-INF\classes\JDOMDemo.java:39: cannot resolve symbol
    symbol  : method getText ()
    location: interface java.util.Iterator
                    String name = resultIter.getText();楼上的出现错误了。
    是怎么回事呢??
      

  2.   

    不能识别getText()函数
    应该怎么解决呢??
    谢谢!!!
      

  3.   

    Iterator里面没有getText()函数
    jdom里面的Element有getText()
    可我这样写Iterator resultIter = (Element)results.iterator();
    不行啊
    什么原因呢???
      

  4.   

    //connectDB.xml
    <?xml version='1.0' encoding='GBK'?>
    <connectdb> 
           <sSID>prod</sSID> 
           <sUser>apps</sUser> 
           <sPassword>apps</sPassword> 
           <sServerIP>192.168.1.214</sServerIP> 
           <sPort>1521</sPort>
           <sURL>http://192.168.1.214:8000/OA_HTML/webreport/</sURL>  
    </connectdb> //jdom.java
    import java.io.*;
    import java.net.URL;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.MalformedURLException;
    import org.jdom.*;
    import org.jdom.JDOMException;
    import org.jdom.input.*;
    import org.jdom.output.*;
    public class jdom {
      public String sSID =null;
      public String sUser=null; 
      public String sPassword=null;
      public String sServerIP=null; 
      public String sPort=null;
      public String sURL=null;
      
       public  void init(String XML_PATH)throws IOException, JDOMException{ 
           int listsize;
           String connectstr =null;
           //
           SAXBuilder builder = new SAXBuilder();
            
          // expand entities within the SAXBuilder
          builder.setExpandEntities( true );
          String filePath=XML_PATH+"/connectDB.xml";
          filePath=filePath.toString();
          File myFilePath=new File(filePath);
         
          Document doc = builder.build(myFilePath);
         
      
           Element root = doc.getRootElement(); //得到根元素 
           java.util.List list1 = root.getChildren(); //得到根元素所有子元素的集合 
           
           listsize=list1.size();
           for (int i=0;i<=listsize -1;i++){
                Element connectdb = (Element)list1.get(i);
                    connectstr=connectdb.getName().toString(); 
                    if (connectstr.equals("sSID")){ 
                      sSID = connectdb.getValue().toString();
                    };
                     if (connectstr.equals("sUser")){ 
                      sUser = connectdb.getValue().toString();
                    };
                     if (connectstr.equals("sPassword")){ 
                      sPassword = connectdb.getValue().toString();
                    };
                     if (connectstr.equals("sServerIP")){ 
                      sServerIP= connectdb.getValue().toString();
                    };
                      if (connectstr.equals("sPort")){ 
                      sPort = connectdb.getValue().toString();
                    };
                     if (connectstr.equals("sURL")){ 
                      sURL = connectdb.getValue().toString();
                    };
           }
              } 
    };
      

  5.   

    回复人: sjtsh() ( ) 信誉:96  2004-09-16 10:14:00  得分: 0  
     
     
       Iterator里面没有getText()函数
    jdom里面的Element有getText()
    可我这样写Iterator resultIter = (Element)results.iterator();
    不行啊
    什么原因呢???  
     
    --------------------------------------
    正确的写法应该是
    String name = ((Element)resultIter.next()).getText();//取得指定路进下得值 密码也是一样得方法
      

  6.   

    to: zcjl() ( ) 信誉:106 
    我在dos界面下javac 无错,
    java:时出错
    D:\Program Files\Tomcat 4.1\webapps\ROOT\WEB-INF\classes>java JDOMDemo
    Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenExcept
    ion
    可我的包jaxen-core.jar在jdk的\jre\lib\ext目录下,而且这个包里面有这个class文件
      

  7.   

    首先,把jar放到jdk的\jre\lib\ext目录下,以图减少设置classpath的麻烦,这样的做法并不可取,时常会带来很多意想不到的麻烦其次,《java与xslt》中有关于classpath的提醒,我摘录如下:classpath问题——当你的代码没有正常运行,特别是使用了xml相关的api时,classpath问题时导致这种情况的一个常见原因。因为现在有很多的工具使用xml,所以很有可能有一些不痛的dom和sax实现驻留在你的系统中。如果在java2的可选包目录中存在一个较老的库,就可能出现更多微妙的问题。在jre/lib/ext目录中找到的任何jar文件会被jvm自动使用,而不必添加到classpath。你应当寻找诸如jaxp.jar和parser.jar这样的文件,它们可能包含较老的、不兼容的xml api。如果遇到这样的问题,那么就从可选包目录中删除所有的jar文件。
      

  8.   

    System.err.println("usage: JDOMDemo <document url> <xpath expr>");请问第一个参数是设成绝对路径还是相对路径??
    第二个参数该怎么设置???
      

  9.   

    JDOMDemo <document url> <xpath expr>
    我这样写还是有错误:
    javac JDOMDemo server.xml /ResourceParams/parameter/name
    server.xml在同一个目录下,
    还是有错误
    郁闷啊
      

  10.   

    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.xpath.XPath;public class JDOMDemo {  public static void main(String[] args) throws JDOMException {
        if (args.length != 1) {
          System.err.println("usage: JDOMDemo <document url>");
          System.exit(1);
        }    Document config = readFromFile(args[0]);
        String username =
          ((Element) XPath
            .selectSingleNode(
              config.getRootElement(),
              "//parameter[name = 'username']/value"))
            .getTextTrim();
        String password =
          ((Element) XPath
            .selectSingleNode(
              config.getRootElement(),
              "//parameter[name = 'password']/value"))
            .getTextTrim();
        System.out.println("username is " + username);
        System.out.println("password is " + password);
      }  //读取文件(带根目录的绝对路径),生成Document对象
      public static Document readFromFile(String path) {
        //...
      }
    }
      

  11.   

    我稍微写了一个Demo程序
    用到了xpath支持,不知道会不会给楼主造成其他的麻烦
      

  12.   

    多谢zcjl() 
    已经解决了。