<Instance xsi:type="ButtonConfig">
<Name>ExitButton</Name>
<Height>89</Height>
<Width>120</Width>
<Margin>
<All>-1</All>
<Bottom>0</Bottom>
<Left>400</Left>
<Right>0</Right>
<Top>11</Top>
</Margin>
</Instance>
在上面的xml中,我需要将左边距更改为420.如何使用XSLT进行操作?
答案 0 :(得分:3)
正如任何XSLT教程都会告诉你的那样:对于像这样简单的事情,从身份样式表开始,它基本上没有复制文档......然后添加一个实现异常的模板。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Margin/Left">
<xsl:copy>
<xsl:text>420</xsl:text>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:3)
这几乎是“identify transform”,它只是复制了输入文档。
这是一个简单的样式表,主要执行身份转换,同时覆盖<Left/>
中<Margin/>
内<Instance/>
的{{1}}输出,其中<Name/>
包含ExitButton
xsi
1}}。请注意,我必须在<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Margin/Left[ancestor::Instance/Name[text()='ExitButton']]">
<Left>420</Left>
</xsl:template>
</xsl:stylesheet>
的输入XML中添加命名空间定义,我假设它在文档的其他位置。
{{1}}