2013-03-06 74 views
1

我正在閱讀Michael Kay的書籍XSLT 2.0和XPath 2.0。我已經經歷了空白節點的話題。在這個話題中給出了一個例子。XSLT中的空白節點

<person> 
    <name>Prudence Flowers</name> 
    <employer>Lloyds Bank</employer> 
    <place-of-work> 
    71 Lombard Street 
    London, UK 
    <zip>EC3P 3BS</zip> 
</place-of-work> 
</person> 

在上述XML中存在幾個文本節點。

  • <name>元素開始和<person>元素結束之間。所述<name>
  • 啓動和所述<employer>元件
  • <place-of-work>元件和<zip>元件和</place-of-work><employer>元件
  • 結束的端部的開始的結束。
  • </place-of-work>元件和</person>元件

如果下面的樣式表是轉換的XML樣式表。

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:strip-space elements="person"/> 
</xsl:stylesheet> 

然後我的問題是,如果我執行上述XSLT文件的也不會剝離<zip>元件和</place-of-work>的端部之間的空白節點。爲什麼?

回答

0

那麼我的問題是,如果我執行上面的XSLT文件,它不會剝離Zip元素的末端和</place-of-work>之間的空白節點。爲什麼?

因爲該文本節點的父是place-of-work元件,而不是person元件,並且place-of-work不是已指定作爲strip-space的元素之一。 <person><name>之間的空白文本節點以及</name><employer>之間的空白文本節點是person元素的直接子節點,因此它們將被剝離。

+0

在這種情況下,如果我指定,那麼它必須刪除該文本節點以及對嗎? – Beast 2013-03-06 12:08:08

+0

@Beast yes,''會告訴它刪除整個文檔中的所有空白文本節點(除非有更具體的'xsl:preserve-space'指令) 。 – 2013-03-06 12:33:16

+0

其實我誤解了書中提到的陳述。感謝澄清budy。 – Beast 2013-03-06 13:01:33