0

ネガティブリストに基づいてデータをフィルタリングできる場合は教えてください。
すなわち。特定の文字列に一致するか、特定の値未満のレコードは必要ありません。どんな助けでも高く評価されます

サンプル入力 xml

<?xml version="1.0" encoding="UTF-8"?>
<top>
    <Results>
        <a>no</a>
        <b>10</b>
        <c>12</c>
        <d>9</d>
    </Results>
    <Results>
        <a>_no_</a>
        <b>8</b>
        <c>50</c>
        <d>12</d>
    </Results>
    <Results>
        <a>yes</a>
        <b>6</b>
        <c>55</c>
        <d>56</d>
    </Results>
    <Results>
        <a>yes</a>
        <b>23</b>
        <c>32</c>
        <d>34</d>
    </Results>
</top>


これで、Not (a ~ 'no') と (b > 8)を除外したい
期待される出力は

<?xml version="1.0" encoding="UTF-8"?>
<top>
    <Results>
        <a>yes</a>
        <b>23</b>
        <c>32</c>
        <d>34</d>
    </Results>
</top>
4

1 に答える 1

1

このxslで試すことができます:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>

  <!-- Identity transform: copy everything from input tree to output tree -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- Template for those elements we want to filter. It is an empty template so it does nothing: -->
  <xsl:template match="Results[not ((a != 'no') and (b &gt; 8))]" />
</xsl:stylesheet>

お役に立てば幸いです。

于 2013-10-18T05:28:29.657 に答える