假设我有一个如下所示的xml文件:
<client name="Mary" id="123"/>
<client name="Anthony" id="456"/>
<client name="Theo" id="789"/>我想从另一个文件中删除id等于其中一个值的所有节点。另一个文件是纯文本文件,但如果这样可以简化解决方案,则可以将其更改为xml。
List_Of_Ids.txt:
123
789我需要最终结果是:
<client name="Anthony" id="456"/>还要考虑的是,客户端xml列表和ids列表都包含数百条记录。
我想做一些类似以下的事情:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:param name="ids-to-delete" select="123, 789"/>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="client[id = $ids-to-delete]"/>
</xsl:stylesheet>但我希望从List_Of_Ids.txt中读取它们,而不是列出要删除的所有I。
有个仁慈的灵魂能帮我吗?
发布于 2018-11-20 06:01:58
使用<xsl:param name="ids-to-delete" select="unparsed-text-lines('List_Of_Ids.txt')"/>,请参见https://www.w3.org/TR/xpath-functions/#func-unparsed-text-lines。
https://stackoverflow.com/questions/53382630
复制相似问题