簡體   English   中英

XSLT:刪除具有空的特定孫代的節點

[英]XSLT: Remove nodes with empty specific grandchild

我正在嘗試使用XSLT從XML刪除一些節點。

轉換的一部分如下所示:

<xsl:template match="gmd:date[gmd:CI_Date/gmd:date/gco:DateTime = null]" />

...而XML看起來像這樣:

<gmd:MD_Metadata ... >
  ...
  <gmd:identificationInfo>
    <gmd:MD_DataIdentification>
      <gmd:citation>
        <gmd:CI_Citation>
          ...
          <gmd:date>
            <gmd:CI_Date>
              <gmd:date>
                <gco:DateTime />
              </gmd:date>
              ...
            </gmd:CI_Date>
          </gmd:date>
          ...
        </gmd:CI_Citation>
        ...
      </gmd:citation>
    </gmd:MD_DataIdentification>
  </gmd:identificationInfo>
</gmd:MD_Metadata>

根據我對XSLT的了解(雖然不多),轉換應該與空孫子匹配。 但事實並非如此。 模板不匹配,轉換不執行任何操作。 我已經嘗試了各種方法(將其與0,默認日期時間匹配,與text()進行比較)...無濟於事。

有什么線索嗎?

XSLT中沒有null
一個節點(文本值是一個節點)為空或不存在。

在這里,它是空的。
因此,請檢查一個空值:

<xsl:template match="gmd:date[gmd:CI_Date/gmd:date/gco:DateTime = '']" />

現在,如果gco:DateTime沒有值,則您的gmd:date應該消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM