我在我的XML中使用xsl:stylesheet
處理指令。無論如何選擇使用XPath這個PI?如果是這樣如何?什麼是XPath表達式來選擇處理指令?
回答
使用processing-instruction()
節點測試。
通常,可以使用processing-instruction()
節點測試來選擇處理指令。
更具體地說,可以包括想要的PI節點的名稱(目標)作爲參數。
使用:
/processing-instruction('xml-stylesheet')
此選擇具有名稱xsl-stylesheet
被在全局級別定義的任何處理指令(是所述頂部元件的兄弟姐妹)。
請注意,xsl:stylesheet
是PI的無效PI目標。冒號':'
用於從本地名稱分隔名稱空間前綴 - 但是處理指令目標不能屬於名稱空間。由於每W3c XPath Specification:
「處理指令有一個擴展名:本地部分是處理指令的目標;空間URI爲空」。
此外,根據W3C文檔:"Associating Style Sheets with XML documents 1.0」,則PI的一個樣式表將XML文檔相關聯必須是目標:"xml-stylesheet"
- 不"xsl:stylesheet"
"xsl-stylesheet"
或
下面是一個完整的例子:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/processing-instruction('xml-stylesheet')"/>
</xsl:template>
</xsl:stylesheet>
當該變換被針對下面的XML文檔施加:
<?xml-stylesheet type="text/xsl" href="test"?>
<Books>
<Book name="MyBook" />
</Books>
XPath表達式求值和所選擇的PI節點輸出:
<?xml-stylesheet type="text/xsl" href="test"?>
我看到你仍然在使用你的舊技巧......刪除並重新發佈一個放棄反對票的答案直接導致了濫用:人們如何決定評價你的答案是他們的決定,而不是你的答案。請不要再這樣做。 – Shog9 2012-02-26 06:38:14
'/ processing-instruction('xml-stylesheet')'選擇名爲'xsl-stylesheet'的東西嗎?這將是神奇的!請注意'xml' vs'xsl'。 – 2013-05-28 09:53:36
@MicheldeRuiter,是的,它的確如此。這是在這裏正式定義的(底部第三段):http://www.w3.org/TR/xpath/#node-tests – 2013-05-28 14:01:52
甲處理指令帽兩個部分目標和數據的語法:
<?target data?>
如果您使用:
<xsl:value-of select="/processing-instruction('xml-stylesheet')" />
它只會返回數據的一部分,在Dimitre Novatchev的例子,它返回:
type="text/xsl" href="test"
所以處理指令的字符串值是數據的一部分。選擇表達式<xsl:value-of
進行評估,並將結果對象轉換爲字符串,如隱式調用string()
函數。
- 1. xpath表達式來選擇屬性值
- 2. XPath表達式來選擇兒童
- 3. XPath表達式來選擇鏈接
- 4. 什麼是XPATH表達式來選擇TreeView的所有檢查節點?
- 5. 什麼是XPath表達式來選擇基於其前綴的屬性?
- 6. 選擇指令的角度表達式
- 7. 這是什麼XPATH表達式
- 8. 使用正則表達式來過濾預處理指令?
- 9. 對於css選擇器'p:nth-of-type(2n)',等效的XPath表達式是什麼?
- 10. 選擇「至少2個」XPath表達式
- 11. XPath表達式來選擇唯一的節點
- 12. XPath表達式來選擇鏈接文本與子div的
- 13. XPath表達式來選擇自,家長和以下節點C#
- 14. Angular-UI Typeahead指令的正確表達式是什麼?
- 15. 什麼是選擇列表項的angularjs指令?
- 16. 此XPath表達式有什麼問題
- 17. XSLT/XPath的:從什麼是選擇
- 18. XPath:可以選擇什麼?
- 19. 什麼是Xpath表達式來選擇使用Firefox WebDriver時具有文本的所有節點?
- 20. 什麼是批處理文件=/xyz像表達式
- 21. 有什麼是S表達式什麼是XPATH是用於XML的?
- 22. 爲什麼選擇AngularJS指令?
- 23. 如何使用正則表達式來剝離預處理指令
- 24. 正則表達式#C預處理器指令中的#else case
- 25. 解析XML樣式表處理指令
- 26. PHP:什麼是更好的方式來處理表單數據?
- 27. 添加xml樣式表處理指令來提升property_tree
- 28. 正則表達式來處理cookies
- 29. 什麼是xpath正則表達式來提取這個元標記?
- 30. XPath來CSS選擇
Kirill,這個答案太籠統 - 你沒有提供一個特定的XPath表達式來精確選擇想要的PI。 – 2012-02-24 14:59:27