2

インポート用のデータをマップするためにxpathディレクティブを受け入れるDrupal7cmsのフィードインポートモジュールを使用しています。アトミック値の一部のみを選択したり、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 に答える