这个是论坛里的问题,但这个功能经常遇到,贴出来供以后参考,这里的关键是XPATH的使用。
file1.xml
view plaincopy to clipboardprint?
〈?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> 〈?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>
view plaincopy to clipboardprint?
file2.xml file2.xmlview plaincopy to clipboardprint?
〈PRE class=xml name="code">〈?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> 〈/PRE> 〈PRE class=xml name="code">xslt1.xsl〈/PRE> 〈PRE class=xml name="code">〈PRE class=xml name="code">〈?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> 〈/PRE> 〈/PRE>