0

XSLT:如果属性设置为 false,则忽略并跳过元素及其整个子元素分支的数据?

我有一个 XML 文档,其中包含Document > Sections > Sub Sections > Items > Sub Items > Super Subs等等。

现在,我为每个级别的所有元素设置的一个常见的“布尔”属性或属性集是“V”表示可见性或可见性,即允许我隐藏/跳过或使文档的整个部分不可见。

由于它是布尔值,它可以保存 1 或 0,即 True/False。

如果我需要通过简单地将一个布尔属性更改为标志来隐藏/未处理和忽略它,我希望能够处理IGNORESKIP输出任何元素及其整个子元素分支。

什么是解决这个问题的好、干净、有效的方法?

是否有一个通用的 Xpath 表达式允许它全局应用于 XML 文档中所有级别的整个元素集?

我欢迎所有建议和替代方法来实施和解决这个问题。

例如 XML:

<Document> 
 <Section v="1">Data 
<SubSection v="1">SS1..</SubSection>
<SubSection v="0">SS2..</SubSection>
 </Section> 
 <Section v="0"></Section> 
 <Section v="1"></Section>
</Document>
4

1 回答 1

2

<xsl:appy-templates/>如果您正在通过输入树上的正常递归遍历处理您的文档,那么您只需要

<xsl:template match="*[@V='0']" priority="10"/>

它说不输出任何内容并且不处理元素的子元素V="0"

于 2013-11-01T17:43:05.903 回答