我有一个在Linux系统上运行的服务器,并且我想编辑Imagemagick的XML文件。
文件内容为:
<policymap>
<policy domain="..." rights=".." pattern="...." />
<policy domain="..." rights=".." pattern="...." />
..
..
</policymap>
因此,我想添加以下行:
<policy domain="coder" rights="read | write" pattern="PDF" />
请我怎么做。
谢谢。
答案 0 :(得分:1)
您可以使用XSLT-1.0处理器和身份模板自动完成此操作:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" />
<!-- Identity template - in XSLT-3.0 it can be replaced by
<xsl:mode on-no-match="shallow-copy"/>
-->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="/policymap">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
<!-- Added new line -->
<policy domain="coder" rights="read | write" pattern="PDF" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
其输出是:
<?xml version="1.0"?>
<policymap>
<policy domain="..." rights=".." pattern="...."/>
<policy domain="..." rights=".." pattern="...."/>
..
..
<policy domain="coder" rights="read | write" pattern="PDF"/>
</policymap>
* Ubuntu上的命令可能是
xsltproc transform.xslt source.xml
或使用Saxon:
java -jar saxon9he.jar -xsl:b.xslt b.xml