2

我在 Drupal 7 cms 中使用 feed 导入模块,它接受 xpath 指令来映射导入数据。是否可以仅选择原子值的一部分或使用 xpath 将其分解?例如:

<book>
...
<categories>1,4,88</categories>
...
</book> 

是否可以使用 xpath 语句分别获得 1 个或 4 个或 88 个?

4

2 回答 2

2

您可以使用substring-before()substring-after()函数:

  • 选择 1:substring-before(/book/categories, ',')
  • 选择 4:substring-before(substring-after(/book/categories, ','), ',')
  • 选择 88:substring-after(substring-after(/book/categories, ','), ',')

使用 XPath 2.0,您可以使用tokenize()函数:

  • 选择 1:tokenize(/book/categories, ',')[1]
  • 选择 4:tokenize(/book/categories, ',')[2]
  • 选择 88:tokenize(/book/categories, ',')[3]
于 2012-09-02T16:37:45.210 回答
1

或者,使用 XPath 2.0,可以通过以下方式访问第Nth 组件

tokenize(/*/categories[1], ',')[$pN]

其中$pN是所需的基于 1 的索引。

于 2012-09-02T16:55:31.160 回答