清理XHTML标记

时间:2014-04-14 14:38:13

标签: html xml vb.net xslt

我需要将XML导入到一个软件中,我提供的XML是由不同的软件创建并发送给我自己的。我通常会浏览XML文档并删除所有CDATA标记,然后必须查找并替换所有标记,从大写到小写,并删除任何STRONG标记或OL标记。

但我必须重新组织标签以允许将其导入软件,例如:

< b>这里有一些文字< p />更粗体的文字< / b>

除非我手动进入并将其更改为

,否则不会导入

< b>这里有一些文字< / b>< p />< b>更粗体文字< / b>

我已经看过HTMLTidy和其他这样的工具,它们只会删除< p />完全标记。如果有任何办法,我需要保持数据的原始格式?

1 个答案:

答案 0 :(得分:1)

使用xslt,您可以执行以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

    <xsl:output indent="no" omit-xml-declaration="yes"/>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="b/text()">
        <b>
            <xsl:value-of select="."/>
        </b>
    </xsl:template>

    <xsl:template match="b">
        <xsl:apply-templates/>
    </xsl:template>

</xsl:stylesheet>

应用于

之类的输入时
<b>Got some text here<p/>More bold text</b>

输出:

<b>Got some text here</b><p/><b>More bold text</b>