[英]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.