gpt4 book ai didi

xml - 在 XML/XSL 文件中包含 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:28 26 4
gpt4 key购买 nike

所以目前我正在做一些 XML-> XSLT-> (HTML5/CSS3) 的工作。现在我有一个 menu.xml 文件,我想将它包含在 XSL 文件或 XML 页面中。我进行了大量搜索,但无法找到直接的答案。

那么,如何将 XML 文件包含到另一个 XML 文件或 XSL 文件中?

编辑:通过包含,我的意思是从另一个文件引用/加载它,而不是复制和粘贴它或简单地嵌入它。

最佳答案

我。以下是如何将任何 XML 文档或片段嵌入 XSLT 样式表并在转换期间使用:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:my="my:my">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<my:menu>
<menu>
<choice>A</choice>
<choice>B</choice>
<choice>C</choice>
</menu>
</my:menu>

<xsl:template match="/">
<xsl:copy-of select="document('')/*/my:menu/*"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于任何 XML 文档(本例中未使用)时,会产生所需的结果(仅复制 XML):

<menu xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="my:my">
<choice>A</choice>
<choice>B</choice>
<choice>C</choice>
</menu>

记住:任何 XML 都可以嵌入到 XSLT 样式表中,前提是它被包装到命名空间元素(命名空间而不是 XSLT 命名空间)中并且这个包装元素处于全局级别(一个子元素) <xsl:stylesheet>(顶部)元素)。

二。访问位于单独 XML 文件中的 XML 菜单文件:

要做到这一点,我们只需要稍微改变前面的例子:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>


<xsl:template match="/">
<xsl:copy-of select="document('menu.XML')/*"/>
</xsl:template>
</xsl:stylesheet>

如果菜单 XML 文件在 'menu.XML'文件(在与 XSLT 样式表文件相同的目录中,则此转换产生与之前完全相同的结果:

<menu>
<choice>A</choice>
<choice>B</choice>
<choice>C</choice>
</menu>

请注意:在这两种情况下,我们都使用标准 XSLT 函数 document()

通常,定义一个全局级变量,其值是调用 document() 的结果功能。然后在转换期间通过 XPath 表达式访问此变量及其内容。

关于xml - 在 XML/XSL 文件中包含 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com