0
<?xml version="1.0"?>
    <shipTo country="US">
        <name><strong>Alice Smith</strong></name>
        <street>123 Maple Street</street>
        <city><hi>Mill Valley</hi></city>
        <state>CA</state>
        <zip>90952</zip>
   </shipTo>

要选择的 xpath 表达式是 "123 Maple Street, Mill Valley, CA, 90952"什么?

4

2 回答 2

0

使用 XPath 2.0 或 XQuery 1.0,您可以使用

string-join(/shipTo/*[position() gt 1], ', ')

获取字符串123 Maple Street, Mill Valley, CA, 90952

使用 XPath 1.0,您可以选择元素

/shipTo/*[position() > 1]

但是您需要使用您使用 XPath 的宿主语言(例如 XSLT 或带有 XPath API 的编程语言)来构造字符串,以遍历所选元素并连接字符串值。

于 2013-06-22T10:57:34.913 回答
0

要从 shipTo 的所有子节点获取所有文本节点(不是名称),请尝试以下操作:

shipTo/*[local-name() != 'name']//text()

要获得逗号分隔的列表,您需要使用 xlst 或 xpaht-2.0

于 2013-06-22T10:59:29.110 回答