小编den*_*nok的帖子

XSLT中的双斜线

我有一个样式表,它包含两个文件,一个来自工程库,另一个来自文档库,然后将它们合并以创建一些DITA文件(进一步处理)。最近,我试图将文档文件的内容分为通用文件和特定文件。因此,我的合并现在是一个包含两个文档文件的工程文件。

通用文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<messages xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <message id="IDENT_STRING">
    ....
  </message>
</messages>
Run Code Online (Sandbox Code Playgroud)

特定文件具有指向通用文件的ENTITY标签:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE messages [
<!ENTITY generic-file SYSTEM "generic-file.xml">
]>
<messages> &generic-file; <!-- specific-file -->
  <message id="IDENT_STRING2">
    ....
  </message>
</messages>
Run Code Online (Sandbox Code Playgroud)

选择是这样写的:

<xsl:copy-of select="$docid/message[@id=$id]/doc/explanation/text()"/>
Run Code Online (Sandbox Code Playgroud)

这只会从特定文件中获取内容。直到我将select更改为两个斜杠后,我的样式表才能正常工作。这是正确的版本:

<xsl:copy-of select="$docid//message[@id=$id]/doc/explanation/text()"/>
Run Code Online (Sandbox Code Playgroud)

我对社区的问题是1)为什么第二种语法正确?和2)我将如何更快地找到它?

xml xslt xpath

1
推荐指数
1
解决办法
3766
查看次数

标签 统计

xml ×1

xpath ×1

xslt ×1