1

我正在阅读 Michael Kay 的书XSLT 2.0 and 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>. 为什么?

4

1 回答 1

0

然后我的问题是,如果我执行上面的 XSLT 文件,它不会去除 Zip 元素的结尾和</place-of-work>. 为什么?

因为该文本节点的父节点是place-of-work元素,而不是person元素,并且place-of-work不是您指定为的元素之一strip-space。和之间的空白文本节点<person><name>之间是元素的直接子元素,因此它们将被剥离。</name><employer>person

于 2013-03-06T11:16:07.377 回答