首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在上次发生特定元素后使用xslt将一个xml数据复制到另一个xml数据中

如何在上次发生特定元素后使用xslt将一个xml数据复制到另一个xml数据中
EN

Stack Overflow用户
提问于 2012-10-18 07:40:12
回答 1查看 352关注 0票数 2

我有两个xml文件。我希望在元素出现后将一个xml文件数据复制到另一个文件中。下面是我正在使用的xml:

代码语言:javascript
复制
---------- xml-1---------------
<?xml version="1.0"?>
<parent>
....
<form id="1" name="world"/>
 <source id="1" name="abc1"/>
 <source id="2" name="abc2"/>
 <source id="3" name="abc3"/>
 <file id="1" name="xyz"/>
....
</parent> 

----------- xml-2--------------
<?xml version="1.0"?>
<root>
<source id="4" data="anything"/>
<source id="5" data="anything"/>
<source id="6" data="anything"/>
<source id="7" data="anything"/>
</root>


------------------The desired output I want-----------------
<?xml version="1.0"?>
<parent>
....
<source id="1" name="abc1"/>
<source id="2" name="abc2"/>
<source id="3" name="abc3"/>
<source id="4" data="anything"/>
<source id="5" data="anything"/>
<source id="6" data="anything"/>
<source id="7" data="anything"/>
<file id="1" name="xyz"
....
</parent> 



============== xslt I am using =============

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*" name="identity">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="source">
    <xsl:choose>
      <xsl:when test="'id=3'">
          <xsl:call-template name="identity"/>
          <xsl:copy-of select="document('file:///D:/Softwares/JEE    eclipse/JEEworkspace/Migration/TestMigrationWithoutDeletingProject/xml2.xml')/*/*"/>
      </xsl:when>
    </xsl:choose>
</xsl:template>
</xsl:stylesheet>

我试图在id属性的基础上找到它,但是它在xml-1数据的每个源元素之后复制xml-2数据。请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2013-10-23 23:03:35

我认为您的代码中有两个小问题:

  • <xsl:call-template name="identity"/>的调用应该在choose部分之外(更确切地说是在前面)。顺便提一句:由于您没有otherwise部分,所以在这里使用xsl:if会稍微短一些。
  • 正确插入点的测试应该是test="@id = 3",因为术语"'id=3'"只是一个字符串,它总是产生true()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12949515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档