Xml 在单独的元素中写入应用模板的结果

Xml 在单独的元素中写入应用模板的结果,xml,templates,xslt,Xml,Templates,Xslt,我不熟悉xml、xslt,我有两个xml文件。我想比较两个文件并显示第一个文件中的记录,而不是第二个文件中的记录 第一个xml: <employees> <employee> <id>1</id> <name>aaa</name> </employee> <employee> <id>2</id> <name>bbb</name>

我不熟悉xml、xslt,我有两个xml文件。我想比较两个文件并显示第一个文件中的记录,而不是第二个文件中的记录

第一个xml:

<employees>
 <employee> 
  <id>1</id>
  <name>aaa</name>
 </employee>
 <employee>
  <id>2</id>
  <name>bbb</name>
 </employee>
 <employee>
  <id>3</id>
  <name>ccc</name>
 </employee>
 <employee>
  <id>4</id>
  <name>ddd</name>
 </employee>
</employees>

1
aaa
2
bbb
三
ccc
4
ddd
第二个xml:

<developers>
 <developer>
  <id>1</id>
  <name>aaa</name>
 </developer>
 <developer>
  <id>3</id>
  <name>ccc</name>
 </developer>
</developers>

1
aaa
三
ccc
我的XSL:

<xsl:stylesheet version="1.0"      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" indent="yes"/>
 <xsl:param name="updates"   select="document('file:///D:/vishal/Talend_vishal/Examples/14-10- 2015/HMergeAssignment/XML_mog_identiteit.xml')" />

 <xsl:variable name="updateItems" select="$updates/developers/developer" />

 <xsl:template match="/employees/employee">
   <xsl:apply-templates select="id"/>
 </xsl:template>

 <xsl:template match="/employees">
  <refid><xsl:apply-templates select="employee[not(id = $updateItems/id)]"/>
 </refid>
 </xsl:template>
</xsl:stylesheet>

我的输出:

<refid>24</refid>
24
所需输出:

<refid>2</refid>
<refid>4</refid>
2
4

您将
refid
元素的创建放在了错误的位置。您已将其放入匹配
employees
的模板中,其中XML中只有一个这样的元素。你真的应该把它放在与
employee

<xsl:stylesheet version="1.0"      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" indent="yes"/>
 <xsl:param name="updates"   select="document('file:///D:/vishal/Talend_vishal/Examples/14-10- 2015/HMergeAssignment/XML_mog_identiteit.xml')" />

 <xsl:variable name="updateItems" select="$updates/developers/developer" />

 <xsl:template match="/employees/employee">
   <refid>
     <xsl:apply-templates select="id"/>
   </refid>
 </xsl:template>

 <xsl:template match="/employees">
  <refids>
    <xsl:apply-templates select="employee[not(id = $updateItems/id)]"/>
  </refids>
 </xsl:template>
</xsl:stylesheet>

注意,我正在
employees
模板中创建
refids
元素,以便XSLT输出格式良好的XML