我正在阅读Michael Kay撰写的 XSLT 2.0和XPath 2.0 一书。我已经完成了白色空间节点的主题。在这个主题中,给出了一个例子。
<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>
元素的开头和<employer>
元素的结尾<zip>
元素和</place-of-work>
的结尾。 </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 :(得分:0)
然后我的问题是如果我执行上面的XSLT文件,它不会剥离Zip元素的结尾和
</place-of-work>
之间的空白节点。为什么呢?
由于该文本节点的父级是place-of-work
元素,而不是person
元素,而place-of-work
不是您指定为strip-space
的元素之一。 <person>
和<name>
之间以及</name>
和<employer>
之间的空白文本节点是person
元素的直接子节点,因此它们将被剥离。