[英]Merging two XML files using XSLT
I have 2 xml files which I need to merge together using a style sheet 我有2个xml文件,我需要使用样式表合并在一起
<AssessmentInput>
<ApplicationData>...</AppicationData>
<MetricList>...</MetricList>
</AssessmentInput>
One is ApplicationData and the other one is MetricList. 一个是ApplicationData,另一个是MetricList。 here is what I have done but it is nothing close to what it should be
这就是我所做的,但它与应有的无关
<?xml version="1.0" encoding="ascii"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common" exclude-result-prefixes="xsl exslt">
<xsl:output omit-xml-declaration="yes" method="xml" encoding="UTF-8"/>
<xsl:param name="ApplicationData" select="/"/>
<xsl:param name="MetricList"/>
<xsl:template match="/">
<xsl:apply-templates select="$ApplicationData/ApplicationData"/>
</xsl:template>
<xsl:template match="ApplicationData">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Please help me. 请帮我。 I don't have any experience with XSLT.
我对XSLT没有任何经验。
Given the following input files: 给定以下输入文件:
ApplicationData.xml ApplicationData.xml
<?xml version="1.0" ?>
<ApplicationData>
Whatever data you have in here.
</ApplicationData>
MetricList.xml MetricList.xml
<?xml version="1.0" ?>
<MetricList>
Whatever list you have in here.
</MetricList>
AssessmentInput.xml AssessmentInput.xml
<?xml version="1.0" ?>
<AssessmentInput />
the following transformation merge.xsl applied to AssessmentInput.xml 以下转换merge.xsl应用于AssessmentInput.xml
<?xml version="1.0" ?>
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/AssessmentInput">
<xsl:copy>
<xsl:copy-of select="document('ApplicationData.xml')" />
<xsl:copy-of select="document('MetricList.xml')" />
</xsl:copy>
</xsl:template>
</xsl:transform>
produces the correct output of 产生正确的输出
<?xml version="1.0" encoding="UTF-8"?>
<AssessmentInput>
<ApplicationData>
Whatever data you have in here.
</ApplicationData>
<MetricList>
Whatever list you have in here.
</MetricList>
</AssessmentInput>
You should be replace your line as below:- 你应该更换你的线路如下: -
<xsl:param name="ApplicationData" select="/"/>
<xsl:param name="MetricList"/>
with this below line one: 以下第一行:
<xsl:variable name="Application_Data" select="document('Application_Data.xml')/ApplicationData"/>
<xsl:variable name="'Metric_List" select="document('Application_Data.xml')/MetricList"/>
i think this may help you.. 我想这可能对你有帮助..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.