我有3个xml文件:
main.xml中:
<page>
<title>main page</title>
<elements></elements>
<templates></templates>
</page>
Elements.xml的:
<elements>
<element_1>element 1</element_1>
<element_2>element 2</element_2>
</elements>
templates.xml:
<templates>
<template_1>template 1</template_1>
<template_2>template 2</template_2>
</templates>
是否可以加载main.xml并查看main.xml的<elements>
节点内的所有<elements></elements>
elements.xml以及{{中{template}内的所有<templates>
1}} main.xml的节点?
所以最后,main.xml将输出如下:
<templates></templates>
我应该使用xsl文件吗?能告诉我一个如何运作的例子吗?
我喜欢避免使用服务器端语言,但如果这是严格的nessecary,我将使用PHP。
答案 0 :(得分:2)
如果你可以控制你的主文件,你可以使用XInclude然后使用知道XInclude的解析器和处理器。
否则,XSLT可能会使用document()函数包含辅助源文档。以下样式表应该按照您的要求进行:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="elements">
<xsl:copy-of select="document('elements.xml')"/>
</xsl:template>
<xsl:template match="templates">
<xsl:copy-of select="document('templates.xml')"/>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>