使用Unix命令行如何执行以下操作?我在Solaris 10 OS上
From:
<Parent>
<From>abc</From>
<To>xyz</To>
</Parent>
to:
<Parent>
<From>xyz</From>
<To>abc</To>
</Parent>
如果您不想使用awk或sed,则可以使用xsltproc,它应该在Solaris上可用(该包称为libxslt):
transform.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Parent">
<xsl:copy>
<xsl:copy-of select="To"/>
<xsl:copy-of select="From"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
命令行:
xsltproc transform.xsl myfile.xml
上面的XSLT样式表使用“标识转换”(第一个模板一对一地复制所有内容),并为Parent元素添加一个特殊规则。如果您的XML仅包含上面的简单结构,则可以省略第一个xsl:template。