连接xml文件
发布时间:2020-12-16 23:10:07 所属栏目:百科 来源:网络整理
导读:我有几个xml文件,其名称存储在另一个xml文件中. 我想使用xsl来生成xml文件组合的摘要.我记得有一种方法可以使用msxml扩展(我使用的是msxml). 我知道我可以使用select =“document(filename)”来获取每个文件的内容,但我不确定如何将所有这些文档合并为一个.
我有几个xml文件,其名称存储在另一个xml文件中.
我想使用xsl来生成xml文件组合的摘要.我记得有一种方法可以使用msxml扩展(我使用的是msxml). 我知道我可以使用select =“document(filename)”来获取每个文件的内容,但我不确定如何将所有这些文档合并为一个. 2008年10月21日我应该提到我想对组合的xml进行进一步的处理,所以仅从变换中输出它是不够的,我需要将它存储为变量中的节点集. 解决方法
以下是您可以做的一个小例子:
file1.xml: <foo> <bar>Text from file1</bar> </foo> file2.xml: <foo> <bar>Text from file2</bar> </foo> INDEX.XML: <index> <filename>file1.xml</filename> <filename>file2.xml</filename> summarize.xsl: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl"> <xsl:variable name="big-doc-rtf"> <xsl:for-each select="/index/filename"> <xsl:copy-of select="document(.)"/> </xsl:for-each> </xsl:variable> <xsl:variable name="big-doc" select="exsl:node-set($big-doc-rtf)"/> <xsl:template match="/"> <xsl:element name="summary"> <xsl:apply-templates select="$big-doc/foo"/> </xsl:element> </xsl:template> <xsl:template match="foo"> <xsl:element name="text"> <xsl:value-of select="bar"/> </xsl:element> </xsl:template> </xsl:stylesheet> 将样式表应用于index.xml可以为您提供: <?xml version="1.0" encoding="UTF-8"?><summary><text>Text from file1</text><text>Text from file2</text></summary> 诀窍是使用文档函数(几乎所有XSLT 1.0处理器都支持的扩展函数)加载不同的文档,将内容作为变量体的一部分输出,然后将变量转换为节点集以进行进一步处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |