这个是论坛里的问题,但这个功能经常遇到,贴出来供以后参考,这里的关键是XPATH的使用。
file1.xml
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="xslt1.xsl"?>
<staffs>
<staff order = "1">
<name>wang </name>
<age>27 </age>
</staff>
<staff order = "2">
<name>Li </name>
<age>24 </age>
</staff>
<staff order = "3">
<name>Q1 </name>
<age>29 </age>
</staff>
</staffs>
file2.xml
<?xml version="1.0" encoding="utf-8" ?>
<staffs>
<staff order = "1">
<name>wang </name>
<Money>100 </Money>
</staff>
<staff order = "2">
<name>Li </name>
<Money>200 </Money>
</staff>
<staff order = "3">
<name>Q1 </name>
<Money>400 </Money>
</staff>
</staffs>
xslt1.xsl
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:variable name="file2" select="document('file2.xml')"/>
<xsl:template match="/">
<staffs>
<xsl:for-each select="/staffs/staff">
<xsl:variable name="CurrentOrder"><xsl:value-of select = "attribute::order" /></xsl:variable>
<staff>
<xsl:attribute name="order"><xsl:value-of select="@order" /></xsl:attribute>
<xsl:copy-of select="name" />
<xsl:copy-of select="age" />
<xsl:copy-of select="$file2/staffs/staff[@order=$CurrentOrder]/Money" />
</staff>
</xsl:for-each>
</staffs>
</xsl:template>
</xsl:stylesheet>
本文介绍如何使用XSLT将两个XML文件中的数据进行整合,具体演示了通过XPATH选择节点并进行属性匹配的过程。
3182

被折叠的 条评论
为什么被折叠?



