如何从Dom4j Node.selectObject或Node.selectNodes获取String列表

时间:2011-01-07 17:55:40

标签: xml xpath dom4j

希望你过得愉快。

Dom4j javadoc表单 Node.selectObject(String xpathExpression)表示如下:

...返回的对象可以是一个或多个Node实例的List,也可以是标量对象,如 String 或Number实例,具体取决于XPath表达式。

但是,当我尝试在这片xml上获取String列表时:

<root>
...
    <level1>
        <property>pro1</property>
        <property>pro1</property>
        <property>pro1</property>
    <level1>
...
</root>

使用以下代码:

List result = document.selectObject("/root/level1/property/text()")

我得到了 org.dom4j.tree.DefaultText 对象列表。当然我可以在列表上进行迭代,但我想知道是否有办法获取String列表。

1 个答案:

答案 0 :(得分:0)

来自http://www.w3.org/TR/xpath/#section-Introduction

  

评估表达式以产生一个   对象,具有以下之一   四种基本类型:

     
      
  • node-set(没有重复的无序节点集合)
  •   
  • 布尔值(true或false)
  •   
  • 数字(浮点数)
  •   
  • string(一系列UCS字符)
  •   

因此,XPath 1.0中没有xs:string的序列

在XPath 2.0中,有一个序列数据类型,当然......