2017-07-19 75 views
0

我試圖組織我的XPath funcionalities,在這條路上,我創建了一個XML文件中包含的XPath字符串,像這樣的節點列表:進樣的Xpath由XPath函數

<?xml version="1.0" encoding="UTF-8"?> 
<main> 
    <entry id="A">/A/B/@value</entry> 
</main> 

這xml文件可以通過xpath變量加載,例如GLOBAL。所以如果我想使用這個xpath,在我的特定xpath代碼中使用$GLOBAL/main/entry[@id='A']應該足以使用這些xpath代碼片段。我的代碼輸出簡單的xpath字符串「/ A/B/@值」,而不是使用它來檢索最終值。

也許我專注於這個問題是錯的,我該怎麼做呢?我的意圖是分離常用的xpath表達式並在其他xpath代碼上使用它。

+0

在我所知的任何XPath版本中,沒有'eval'函數或類似函數。 XSLT 3.0已經https://www.w3.org/TR/xslt-30/#element-evaluate在XSLT中做你想做的事情。但是在純XPath中,您需要檢查XPath API是否提供了擴展功能或實現方法。 –

+0

請參閱http://saxonica.com/html/documentation9.7/functions/saxon/evaluate-node.html以撒克遜具體的方式,例如'saxon:evaluate-node($ GLOBAL/main/entry [@ id ='A'])'如果您使用商業版本的Saxon 9和XPath,應該做你想做的事情。 –

回答

0

我試了評估節點,但沒有運行,之後我們嘗試了評估函數,它運行得很好。

saxon:evaluate($GLOBAL/main/entry[@id='A']) 

感謝您的回答!