xmlxslt:使用XSLT将两个XML文件合成一个XML文件来源: 发布时间:星期四, 2009年2月12日 浏览:88次 评论:0
这个是论坛里问题但这个功能经常遇到贴出来供以后参考这里关键是XPATH使用 file1.xml view plaincopy to clipboardpr? <?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 clipboardpr? file2.xml file2.xmlview plaincopy to clipboardpr? <PRE =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 =xml name="code">xslt1.xsl</PRE> <PRE =xml name="code"><PRE =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> view plaincopy to clipboardpr?<?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> <?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> view plaincopy to clipboardpr?xslt1.xsl xslt1.xsl view plaincopy to clipboardpr?<PRE =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> view plaincopy to clipboardpr?<?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> <?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> 0
相关文章读者评论发表评论 |
|