2016-08-17 10 views
0

私はコード専門家ではないので、説明が貧弱であることに謝罪します。このような表に出laydされている情報の一部を抽出XPathセパレータ/デバイダ

イム: enter image description here

を私は次のことを必要とする消費者の購入ツーましょうビジネステーブルから例えば各テーブルを抽出する必要があります。 消費者購入ツーましょうアレンジャー、消費者の購入・ツー・LET顧問

この情報を抽出しますが、カンマなしでこのようになります私の現在のXPath:

//*/text()[normalize-space(.)='Consumer buy-to-let Business']/parent::*/parent::*/p 

王tput:

Consumer buy-to-let arrangerConsumer buy-to-let advisor 

コンマを区切り記号として追加する方法を見つけるのに苦労しています。読みやすくするためにラップ

答えて

1

string-join(
    //text()[normalize-space(.)='Consumer buy-to-let Business']/ancestor::*[2]/p, ',' 
) 

は参照してください:fn:string-joinIs it possible to apply normalize-space to all nodes XPath expression finds?

/ancestor::*[2]
  • テキストノードは常にそう//*/text()//text()
  • 関連読書と同じで、要素の子でなければならないと書かれたとき

    • /parent::*/parent::*が短いこと

      注意

    +0

    残念ながら、それは私のために働かなかった、私はそれをタイプしました: string-join(// text()[normalize-space(。)= 'コンシューマーバイ・トゥ・レット・ビジネス']/ancestor :: * [2]/p、 '、') テストしますが、結果は表示されません。私はXPathを入力する1行しか持っていません – Tomas

    +0

    私の答えの関連部分は 'string-join(someNodes、 'separator')'です。私のパスが何も返さない場合は、あなたのものを使用してください。それでも動かない場合は、 'string-join(( '' foo '、' bar ')、'。 ')'を使ってクロスチェックを行います。 * that *が '' foo.bar''を返さない場合、アプリケーションがXPath式を評価する方法に何か問題があります。 – Tomalak