2016-08-17 353 views
0

由於我不是代碼專家,所以對此解釋不好。XPath分隔符/分隔符

林提取一段信息在表layd出像這樣的: enter image description here

我需要提取各表例如從消費者購買到讓業務表我需要以下條件: 消費者購買到讓編曲,消費者在購買到讓顧問

我,提取這些信息,但是沒有一個逗號當前的XPath看起來是這樣的:

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

歐輸入:

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-join

注意

  • /parent::*/parent::*較短時爲/ancestor::*[2]
  • 文本節點寫入必須始終是元素的孩子,所以//*/text()相同//text()

相關閱讀:Is it possible to apply normalize-space to all nodes XPath expression finds?

+0

不幸的是,它並沒有爲我工作,我輸入爲: string-join(// text()[normalize-space(。)='Consumer buy-to-let Business']/ancestor :: * [2]/p,',') Im使用import.io測試,但它不會帶來任何結果。我只有一行輸入XPath – Tomas

+0

我的答案的相關部分是'string-join(someNodes,'separator')'。如果我的路徑沒有返回任何東西,請使用你的路徑。如果這不起作用,請使用'string-join((''foo','bar'),'。')'進行交叉檢查。如果*那*沒有返回''foo.bar'',那麼你的應用程序評估XPath表達式的方式有些問題。 – Tomalak