XSLT筛选器节点多个条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSLT筛选器节点多个条件相关的知识,希望对你有一定的参考价值。

我正在寻找一种方法来过滤XML中的某些节点。在输出中,我想保留所有节点if

<year>是2020

[<year>为2019 AND <available>为是。

原始xml:

<root>
    <item>
        <code>1</code>
        <available>YES</available>
        <year>2020</year>
    </item>
    <item>
        <code>2</code>
        <available>NO</available>
        <year>2020</year>
    </item>
    <item>
        <code>3</code>
        <available>NO</available>
        <year>2019</year>
    </item>
    <item>
        <code>3</code>
        <available>YES</available>
        <year>2019</year>
    </item>
</root>

测试输出:

<root>
    <item>
        <code>1</code>
        <available>YES</available>
        <year>2020</year>
    </item>
    <item>
        <code>2</code>
        <available>NO</available>
        <year>2020</year>
    </item>
    <item>
        <code>3</code>
        <available>YES</available>
        <year>2019</year>
    </item>
</root>

我可以使用以下方法过滤掉2020年,2019年的节点:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="no" indent="yes" method="xml"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node() | @*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="item[not(YEAR = 2020) and not(YEAR = 2019)]" />

 </xsl:stylesheet>

我只是无法细化第二个条件<year> is 2019 AND <available> is YES.

答案

A year不能为2020 AND

2019。我相信你的意思是:

以上是关于XSLT筛选器节点多个条件的主要内容,如果未能解决你的问题,请参考以下文章

excel如何多条件筛选

Excel表格中筛选如何设置多个条件?

在Excel中怎样进行多条件筛选

在PowerQuery中让用户自定义筛选条件的一种解决办法

excel 筛选多个条件怎么设置

excel 多条件函数筛选