Drupal 7:Feeds XPath Parser»问题多个子项和concat()不兼容

时间:2014-06-06 07:21:44

标签: xpath drupal-7 feeds

我有以下XML文件:

<rows>
<row>
<title>Title 1</title>
<descriptions>
<description lang="EN">Lorem ipsum</description>
<description lang="FR">Lorem ipsum</description>
</descriptions>
</row>
<row>
<title>Title 2</title>
<descriptions>
<description lang="EN">Lorem ipsum</description>
<description lang="FR">Lorem ipsum</description>
</descriptions>
</row>
</rows> 

我需要将@lang和描述导出为字符串。 (例如,&#34; EN :: Lorem ipsum&#34;)。所以我使用了对xpath的concat函数:

description = concat(.//description,' :: ',.//@lang)

这适用于第一个描述,但忽略了第二个。

有办法做到这一点吗? NB feeds_xpathparse模块仅支持Xpath 1.0功能。

2 个答案:

答案 0 :(得分:0)

在XPath 1.0中无法做到这一点。您可以使用XPath 2.0,也可以选择所有节点并以宿主语言连接结果。 - helderdarocha

答案 1 :(得分:0)

如果您已经有正确的上下文(例如/row),则此语法应该在FeedsXPathParserXML中有效:

concat(description, " :: ", @lang)

concat()XML XPath 1.0兼容。