我有一个情况。为了开发一个非常复杂的XML,我使用了“占位符”。一旦我的XML准备好了,我就需要删除那些'占位符'。
示例输入
<consumers>
<place-holder_1>
<consumer>
<val>1</val>
</consumer>
</place-holder_1>
<place-holder_2>
<consumer-info>
<val>2</val>
</consumer-info>
</place-holder_2>
</consumers>
示例输出
<consumers>
<consumer>
<val>1</val>
</consumer>
<consumer-info>
<val>2</val>
</consumer-info>
</consumers>
基本上,我正在寻找一个正则表达式,它可以通用方式删除包含“place-holder”的所有标签。 1到10之间的任何数字都可以是'place-holder'标签的后缀。
我正在努力为此提出正则表达式。
答案 0 :(得分:1)
答案 1 :(得分:1)
答案 2 :(得分:1)
您应该可以使用XSLT in kettle。
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<!--Identity Transform (https://www.w3.org/TR/xslt#copying)-->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(local-name(),'place-holder')]">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>