您的位置:程序门 -> java -> web services / xml



java操作xml,判断节点值是否存在的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


java操作xml,判断节点值是否存在的问题[无满意答案结贴]
发表于:2008-01-29 12:36:31 楼主
<?xml   version="1.0"   encoding="shift_jis"?>
<!doctype   web-app   public   "-//sun   microsystems,   inc.//dtd   web   application   2.3//en"   "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>    
    <servlet>
        <servlet-name   value=   "th2020010value"> th2020010servlet </servlet-name>
        <servlet-class> com.th2020.th2020010servlet </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name> th2020010servlet </servlet-name>
        <servlet-class> com.th2020.th2020010servlet </servlet-class>
    </servlet-mapping>
</web-app>

xml中文件中的格式如上所示

我写了一个方法想判断红色的部分已经在xml中存在,但总不成功,代码如下,
                  saxreader   reader   =   new   saxreader();
  try   {
        this.document   =   reader.read(new   file("web.xml"));
  }   catch   (documentexception   e)   {
        system.out.println(e.getmessage());
  }

            node   node   =   document.selectsinglenode("//web-app/servlet/servlet-name[@value='th2020010value']");   //这句可以正常执行  
          system.out.println(node.gettext());   //这句可以正常打印出来   ,输出内容"th2020010servlet"

            node   node   =   document.selectsinglenode("//servlet-name[text='th2020010servlet']");//这句不能成功执行
          system.out.println(node.gettext());   //这句报出java.lang.nullpointerexception异常

我怀疑是蓝色的地方有问题,但不知道怎么修改,请高手指教。

发表于:2008-01-29 13:59:401楼 得分:0
没想你那样做过!xpath支持??   表示怀疑,
我通常这样做:
  获取上一级节点parentnode
foreach   (node   n   in   parantnode.childnodes)
{
    if(n.gettext().equals('th2020010servlet'))
{
    return   n;
}
}  
发表于:2008-01-30 09:35:122楼 得分:0
帮顶!


快速检索

最新资讯
热门点击