Xml 在单独的元素中写入应用模板的结果
我不熟悉xml、xslt,我有两个xml文件。我想比较两个文件并显示第一个文件中的记录,而不是第二个文件中的记录 第一个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>
<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