【问题标题】:Unix: Swapping Values Between XML Tags In a FileUnix:在文件中的 XML 标记之间交换值
【发布时间】:2017-12-16 07:22:29
【问题描述】:

使用 Unix 命令行我如何执行以下操作?我在 Solaris 10 操作系统上

From:

<Parent>
 <From>abc</From>
 <To>xyz</To>
</Parent>

to:

<Parent>
 <From>xyz</From>
 <To>abc</To>
</Parent>

【问题讨论】:

    标签: xml unix tags swap


    【解决方案1】:

    如果您不想使用 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      相关资源
      最近更新 更多