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

时间:2013-11-01 17:36:59

标签: xslt xpath attributes ignore skip

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

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

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

因为它是布尔值,所以它可以保持1或0,即True / False。

如果我需要隐藏/未处理,我希望能够{em} 任何元素及其整个子元素分支的IGNORESKIP处理和输出只需将一个布尔属性更改为标志即可忽略。

这会是一个好的,干净的,有效的方式吗?

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

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

e.g。 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>

1 个答案:

答案 0 :(得分:2)

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

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

表示不输出任何内容,也不处理V="0"

元素的子元素