【问题标题】:How to get a list of String from Dom4j Node.selectObject or Node.selectNodes如何从 Dom4j Node.selectObject 或 Node.selectNodes 获取字符串列表
【发布时间】:2011-01-07 17:55:39
【问题描述】:

希望你有一个美好的一天。

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

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

但是,当我尝试在这段 xml 上获取字符串列表时:

<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 对象列表。当然,我可以在列表上进行迭代,但我想知道是否有办法获取字符串列表。

【问题讨论】:

    标签: xml xpath dom4j


    【解决方案1】:

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

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

    • 节点集(无重复节点的无序集合)
    • 布尔值(真或假)
    • 数字(浮点数)
    • 字符串(UCS 字符序列)

    所以,XPath 1.0 中没有xs:string 序列

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

    【讨论】:

    • 我使用的是 xpath 2.0。我不明白你的回答。即使一个表达式被评估为产生和描述类型的对象,Dom4j Api 应该返回一个字符串列表,不是吗。
    • @Periworks:如果您选择 XML 节点,结果应该是来自 dom4j.sourceforge.net/dom4j-1.4/apidocs/org/dom4j/… 的 Node 的 List。另请注意,此方法已弃用,取而代之的是 evaluate,并且没有迹象表明 dom4j 接口可以与 XPath 2.0 引擎一起使用
    猜你喜欢
    • 2012-05-03
    • 2019-02-21
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    相关资源
    最近更新 更多