【问题标题】:Sourcing multiple xml docs from single xslt从单个 xslt 采购多个 xml 文档
【发布时间】:2010-12-08 03:28:31
【问题描述】:

我正在尝试这个,但似乎无法让它工作。有人可以看看我是否遗漏了一些明显的东西。

我在 test.xsl 中引用了这样的额外文档。

<xsl:value-of select="document('/customercare/library/test/test1.xml')/resources/resource/name" />

这是 xml test1.xml。

<resources>
    <resource>  
        <name>configuration</name>
    </resource> 
</resources>

这是我的 asp 页面 index.aspx 中的片段调用。

<%
            Dim mm_xsl As MM.XSLTransform = new MM.XSLTransform()
            mm_xsl.setXML(Server.MapPath("/customercare/library/test/test2.xml"))
            mm_xsl.setXSL(Server.MapPath("/customercare/library/test/test.xsl"))            
            Response.write(mm_xsl.Transform())
        %>

我正在构建一个包含数百种产品的网站。我想要一个 xml 文档,其中包含高级详细信息,例如可以从任何地方采购的每种产品的名称和图像路径,这将具有唯一的模式。然后拥有另一个具有唯一架构的 xml 文档,其中包含特定于子部分的项目,例如包含文档路径、电话号码等的支持。

我的问题是如何从一个 xslt 中获取两个 xml 文档?

谢谢

【问题讨论】:

    标签: xml xslt schema


    【解决方案1】:

    看看 document() 函数。

    article 提供了其用法的概述。

    【讨论】:

      【解决方案2】:

      当我以您所描述的方式使用 XML 文档时(即作为要在转换期间引用的查找表),我通常将它们加载到转换顶部的变量中:

      <xsl:stylesheet...>
         <xsl:variable name='resources' select=document('resources.xml')/>
         <xsl:variable name='products' select="$resources/resources/products/product"/>
      

      然后我可以在适当的地方从这些变量中查找信息,例如:

      <xsl:template match='product'>
         <tr>
            <td>
               <xsl:value-of select='@id'/>
            </td>
            <td>
               <xsl:value-of select='@description'/>
            <td>
            <td>
               <img src='{$products[@id=current()/@id]/image}'/>
            </td>
        </tr>
      <xsl:template>
      

      【讨论】:

        【解决方案3】:

        当然,您可以在样式表中使用两次 xsl:document() 函数。但是你为什么要那样做呢?似乎没有明显的理由这样做。

        其他选项是 XPath 的 fn:doc() 函数或 xsl:document 元素。

        【讨论】:

          猜你喜欢
          • 2012-09-21
          • 1970-01-01
          • 2011-02-18
          • 2012-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多