2013-01-10 71 views
1

我遇到問題。我想將兩個XML文件的上下文合併爲一個。這在MAVEN項目(POM)和XSL的xslt-generator-maven-plugin的幫助下完成。用XSL追加一個XML到另一個的上下文

我已經POM配置,如:

<plugin> 
<groupId>net.sf.xsltmp</groupId> 
<artifactId>xslt-generator-maven-plugin</artifactId> 
<version>1.7</version> 
<executions> 
<execution> 
<id>transform-contex</id> 
<goals> 
<goal>many-to-one</goal> 
</goals> 
<configuration> 
<srcDir>src/main/webapp/META-INF/</srcDir> 
<srcIncludes>**/*context.xml</srcIncludes> 
<xslTemplate>src/main/webapp/Temp.xsl</xslTemplate> 
<destFile>${project.build.directory}/contextNEW.xml</destFile> 
</configuration> 
</execution> 
</executions> 
</plugin> 

我有一個像第一個文件:

<?xml version="1.0" encoding="UTF-8"?> 
<Context debug="0" reloadable="true" > 
    <Resourcen name="jdbc/ChiDS" 
       auth="Container" 
       type="javax.sql.DataSource" 
       ... 
</Context> 

和第二,如:

<?xml version="1.0" encoding="UTF-8"?> 
<Context> 
    <Realm className="org.apache.catalina.realm.MemoryRealm" 
      pathname="webapps/${application.name}/WEB-INF/users.xml"/> 
</Context> 

,並希望得到:

<?xml version="1.0" encoding="UTF-8"?> 
<Context debug="0" reloadable="true" > 
<Resourcen name="jdbc/ChiDS" 
       auth="Container" 
       type="javax.sql.DataSource" 
       ... 
<Realm className="org.apache.catalina.realm.MemoryRealm" 
     pathname="webapps/${application.name}/WEB-INF/users.xml"/> 
</Context> 

因此,我會第一個附加第二個XML。我需要創建一個正確的TEMP.xsl文件。

我 「需要」 使用下列內容:

  • XSLT - 發電機 - Maven的插件

我試過,但令牌化是一個問題。

<xsl:output method="xml" indent="yes"/> 

<xsl:param name="source-file-names" /> 
<xsl:variable name="names-sequence" select="tokenize($source-file-names,'\|')" /> 
<xsl:variable name="cfg-files" select="document($names-sequence)" /> 

任何線索?我嘗試了幾件事,但沒有解決這個問題。

感謝您的幫助。

我試圖與這個XSL(我固定的標記問題),但沒有成功:

<xsl:output method="xml" indent="yes"/> 

<xsl:param name="source-file-names" /> 
<xsl:variable name="names-sequence" select="fn:tokenize($source-file-names,'\|')" /> 
<xsl:variable name="cfg-files" select="document($names-sequence)" /> 

<xsl:template match="/"> 
    <xsl:copy> 
     <xsl:apply-templates select="$cfg-files/*"/> 
    </xsl:copy> 
</xsl:template> 

我已經看過這個樣本:https://github.com/ivos/xslt-generator-maven-plugin/issues/1 但在我的身邊沒有成功。

任何幫助,歡迎。 :)

回答

0

您需要創建第三個xml文檔,其中包含您要加入的其他xml文件。
我認爲這是有幫助的:http://www.ibm.com/developerworks/library/x-tipcombxslt/

+0

是的,但我不知道有多少文件和上下文將是什麼。我可以這樣做:#1文件位於$ {project.build.directory} /classes/rebel.xml #2文件位於$ {project.build.directory}/gis-ol/WEB-INF/classes/rebel.xml #3文件位於$ {project.build.directory} /war/work/pt.xlm.gir/datageo/WEB-INF/classes/rebel.xml所以名稱也是一樣的。 – DeLarcco

+0

我不確定xsl轉換可以是高級/複雜的。 –