インポート用のデータをマップするためにxpathディレクティブを受け入れるDrupal7cmsのフィードインポートモジュールを使用しています。アトミック値の一部のみを選択したり、xpathで分解したりすることは可能ですか?例えば:
<book>
...
<categories>1,4,88</categories>
...
</book>
xpathステートメントで個別に1、4、または88のみを取得することは可能ですか?
インポート用のデータをマップするためにxpathディレクティブを受け入れるDrupal7cmsのフィードインポートモジュールを使用しています。アトミック値の一部のみを選択したり、xpathで分解したりすることは可能ですか?例えば:
<book>
...
<categories>1,4,88</categories>
...
</book>
xpathステートメントで個別に1、4、または88のみを取得することは可能ですか?
substring-before()およびsubstring-after()関数を使用できます。
substring-before(/book/categories, ',')
substring-before(substring-after(/book/categories, ','), ',')
substring-after(substring-after(/book/categories, ','), ',')
XPath 2.0では、 tokenize()関数を使用できます。
tokenize(/book/categories, ',')[1]
tokenize(/book/categories, ',')[2]
tokenize(/book/categories, ',')[3]
または、XPath 2.0を使用して、次の方法でN
thコンポーネントにアクセスできます。
tokenize(/*/categories[1], ',')[$pN]
ここ$pN
で、は目的の1ベースのインデックスです。