Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java <;李>;标记Xpath位置_Java_Xpath - Fatal编程技术网

Java <;李>;标记Xpath位置

Java <;李>;标记Xpath位置,java,xpath,Java,Xpath,“我的xml”中有许多列表元素具有某些类名: <li class="name"> <div>....</div> ...... </li> .... ...... 设置位置,如“/*li[@class='name']”抛出 javax.xml.transform.TransformerException:额外的非法标记:“LI”,“[”,“@”,“class”,“'=”,“name”,“']. 如何通过xpath位置获取此列表元素?

“我的xml”中有许多列表元素具有某些类名:

<li class="name">
  <div>....</div>
  ......
</li>
  • .... ......
  • 设置位置,如“/*li[@class='name']”抛出

    javax.xml.transform.TransformerException:额外的非法标记:“LI”,“[”,“@”,“class”,“'=”,“name”,“'].


    如何通过xpath位置获取此列表元素?

    删除
    *
    ,即,代替

    //*li[@class='name']
    
    你需要使用

    //li[@class='name']
    
    这*是不必要的,如果您想在树中的任何级别上搜索与您的类匹配的所有li元素,只需删除*即可

    • 表示“匹配树中此级别的所有元素”,因此“//*”基本上表示匹配树中的所有元素,因此*后面的所有内容都无效

    如果您的xml仅包含HTML,请使用HTML解析器,就像您的xml是否包含名称空间一样?是的,删除“*”后不会引发异常,但我的列表以这种方式为空。使用
    /*[@class='name']
    显示结果,但我只需要在
  • 标记中获得这些结果。也许我应该接受父元素?@AntonChertash听起来可能有名称空间问题。您是否碰巧有
    xmlns=”http://www.w3.org/1999/xhtml“
    或输入文件根目录下的类似文件?