如何使用xchange将属性添加到XML

时间:2016-02-02 11:34:08

标签: xml xpath

假设我有以下XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="pathto/xsd/meta.xsd">
    <baar name="metaName"></baar>
</foo>

如何将属性visible="false"添加到节点<baar>

我尝试了以下内容:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="pathto/xsd/xchange.xsd" location="@super">     
    <insert xpath="/foo/baar/@visible" visible="false">  
    </insert>  
</xchange>

但它不起作用。

1 个答案:

答案 0 :(得分:0)

你可以用XSLT

来做
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

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

    <xsl:template match="/foo/baar">
        <baar visible="false">
            <xsl:apply-templates select="@*|node()"/>
        </baar>
    </xsl:template>
</xsl:stylesheet>

以下是解释adding attribute to the node