这类问题总是会吸引很多相互竞争的答案,因为最佳答案取决于您需要它的概括程度,而这在您的问题中并不清楚。
如果您想要一个超级通用的解决方案,我将把它留给常规的 XSLT SO 明星。或者您可以只搜索 SO 以查找有关如何序列化/或字符串化 XML 的问题。有很多。
我将为您提供一个非常简单但具体的解决方案,以对您的问题进行非常狭隘的解释。为此,我将假设:
- 您只对序列化
TITLE
元素的内容感兴趣。
- KW`)的子元素
TITLE' (such as
是受限制的,因为它们没有子元素和属性,并且不在命名空间中。
有了这种解释,这个输入文件......
<ITEM>
<TITLE>Video: High Stakes for <KW>Obama</KW> & Romney</TITLE>
</ITEM>
...由此 XSLT 1.0 样式表转换(在 2.0 中工作方式相同)...
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="TITLE/*">
<xsl:value-of select="concat('<',name(),'>',.,'</',name(),'>')" />
</xsl:template>
</xsl:stylesheet>
...产量...
<ITEM>
<TITLE>Video: High Stakes for <KW>Obama</KW> & Romney</TITLE>
</ITEM>