簡體   English   中英

XPath參考

[英]XPath reference

我不知道我正在尋找什么的正確術語,但我正在尋找的是完整的參考雙引號之間的語句,如*node()@*和所有這里列出的以及任何其他存在的。

<xsl:template match="*">

我鏈接的答案提供了一些細節,但還不夠。 例如,關於我上面給出的示例,該答案說“可以應用於任何元素”,但在Xpath中被視為“元素”? node()包含什么? 哪些陳述包含屬性? 等等

我在這里這里搜索了參考文獻,我正在慢慢地閱讀本書,但我沒有看到我想要的信息,這基本上是一個統一的(並且希望是詳盡的)語句列表及其含義。 這樣的清單是否存在,如果存在,它在哪里? 免費很好,但沒有必要。

在XSLT中, match模式接受XPath表達式的子集。 因此,可以作為match屬性的值出現的表達式集由兩個規范控制:XPath規范本身(定義匹配模式是其子集的語言)和XSLT規范(定義子集)。

如果您使用的是XSLT 1.0,則權威帳戶由XPath 1.0規范和XSLT 1.0規范提供。 XPath的本質是語言無限大; 沒有一份詳盡的法律模式清單。 相反,這組合法模式是由XSLT和XPath規范中給出的無上下文語法定義的。

如果您正在使用XSLT 2.0,相關規范是XPath 2.0 (第二版)和XSLT 2.0 同樣,合法匹配模式的定義使用部分在XSLT規范中定義的語法,部分在XPath規范中定義。

你問Xpath中被認為是什么“元素”? node()包含什么? 哪些陳述包含屬性? 等等

兩個版本的XPath都定義了如何根據XPath數據模型的實例計算表達式; 它是指定所有元素節點都是節點的數據模型,但並非所有節點都是元素節點(依此類推)。 XPath 1.0的數據模型更簡單,通常更容易理解,但它的定義相當非正式,並且有些讀者認為這是一些有問題的差距和矛盾; 在XPath 1.0規范的第5節中定義。 XPath 2.0數據模型不僅用於XPath和XSLT,還用於XQuery; 它是在一個名為XQuery 1.0和XPath 2.0數據模型(XDM)的規范中定義的。

一本關於XSLT的好書通常也會提供數據模型的良好說明; 當然,取決於書的風格,它可能或多或少是詳盡無遺的,並且對角落情況或多或少都要小心。 有幾本好書,我聽過人們對Doug Tidwell的書說好話。 但是,我在每個嚴肅的XSLT程序員的架子上找到的一本XSLT書都是Michael Kay寫的。 (實際上,我認識的最嚴重的XSLT程序員有兩個:XSLT 1.0版本和XSLT 2.0版本。)

根據您的問題的措辭,聽起來好像您可能還想閱讀一些有關XML本身的系統介紹。

我想起了一位經理,他要求你提出讓世界擺脫癌症的計划,並堅持要求他們明天必須出示在一張A4紙上。 您已經發現需要比簡單的“單頁”參考文獻更多的技術細節,但您仍然重視它們的簡單性:您同時要求完整性和簡潔性,這是一個艱難的訂單。

我認為你在回答自己的問題的過程中確實很好。 您發現需要更好地理解數據模型,因為這會支持您需要編寫的所有XPath表達式和XSLT模式的語義。 正如Michael Sperberg-McQueen所指出的那樣,在XPath 1.0規范中對模型有一個令人欽佩的簡潔但可悲的非正式描述,以及從XSLT 2.0和XQuery 1.0鏈接的XDM規范中令人欽佩的詳細但令人遺憾的冗長描述。 同樣,您還發現任何對XPath(或模式)語法和語義的簡短引用都將是不完整的,但是任何更長的描述都需要時間來吸收。 所以你知道你必須做出的選擇!

元素是像<Something>這樣的XML結構, 屬性看起來像Something="value" ,兩者都可以稱為節點

我認為一個很好的參考是XPath規范本身。 需要一段時間來閱讀所有內容以及更多內容才能理解它,但這是一個很好的地方,可以提取一些術語來制定更具體的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM