[英]XSLT, XPath: How to get attribute of parent element with reference on attribute of his child?
[英]XPath reference
在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.