2
XSLT新手問題:我需要用XML文件中的文本值替換。所有其他節點必須保持不變。這是我的輸入文件(in.xml):僅處理選定節點
<?xml version="1.0" encoding="UTF-8"?>
<root>
<level1 attr1="val1">
<level2>in</level2>
</level1>
</root>
這裏是我的XSLT轉化(subst.xsl):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="//node()">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="/root/level1/level2/text()">out</xsl:template>
</xsl:stylesheet>
我用下面的Ant腳本(build.xml文件)運行:
<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="test" basedir=".">
<target name="test">
<xslt style="subst.xsl" in="in.xml" out="out.xml" />
</target>
</project>
這裏就是我得到(out.xml):
<?xml version="1.0" encoding="UTF-8"?><root>
<level1>
<level2>out</level2>
</level1>
</root>
缺少「level1」的屬性「attr1」。
我會很感激,如果有人
- 告訴我有什麼錯subst.xsl
OR
- 給我一個想法如何強制XSLT處理器只是將不匹配的節點複製到輸出文件並手動執行(這在我的情況下是error-p羅內)。