如何使用XSLT筛选XML中不含XYZ的节点 实现payload转换
XSLT转换代码
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- 身份转换规则:默认原样复制所有节点、属性 --> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()" /> </xsl:copy> </xsl:template> <!-- 过滤规则:匹配value字段包含XYZ的row节点,不输出该类节点 --> <xsl:template match="row[contains(document_business_unit__cr.name__v/value, 'XYZ')]" /> </xsl:stylesheet>
逻辑说明
- 代码基于XSLT 1.0编写,兼容绝大多数主流XSLT处理器
- 身份转换模板会默认保留所有不需要修改的节点,包括头部的responseStatus、responseDetails节点内容
- 自定义的空模板会匹配所有子节点
document_business_unit__cr.name__v/value包含字符串XYZ的row节点,匹配到后直接忽略不输出,实现过滤效果 - 输出结果会自动保留原始XML的声明、编码等属性,和期望的输出格式一致
内容的提问来源于stack exchange,提问作者vijay
相关产品推荐
相关产品推荐

