我有超过500个xml文件,它们都具有类似的结构。每个都有一个<stream>
标签和相应的</stream>
标签,中间有许多行文本。是否有一种方法可以快速删除两个标签之间的一切(可能包括标签本身),而无需手动选择,删除所有文本(这是很多)?
我用记事本打开这些文件,但如果需要,也可以使用其他软件。
使用XSLT,例如
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="stream"/>
</xsl:stylesheet>
有各种各样的XSLT处理器有一个命令行接口,或者你可以使用几行Powershell (xslt.xsl
是上面保存在该名称下的),例如
$xslt = New-Object System.Xml.Xsl.XslCompiledTransform
$xslt.Load("xslt.xsl")
$xslt.Transform("input.xml", "output.xml")