2009-10-19 2 views
2

Я пытаюсь это сделать и не могу заставить его работать. Может кто-то взглянуть и посмотреть, не хватает ли я чего-то очевидного.Поиск нескольких документов xml из одного xslt

Я ссылаюсь на дополнительный документ, подобный этому в 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-документ с уникальной схемой, которая содержит элементы, относящиеся к подразделению, такие как поддержка, которая будет содержать пути к документам, номера телефонов и т. Д.

Мой вопрос заключается в том, как я могу исправить оба документа xml из одного xslt ?

Благодаря

ответ

3

Посмотрите на документа() функции.

Этот article содержит обзор его использования.

+1

Также здесь: http://www.w3schools.com/xsl/func_document.asp – Murph

0

Конечно, вы можете использовать функцию xsl: document() дважды в таблице стилей. Но почему вы так хотите? Кажется, нет очевидных оснований для этого.

Другие параметры - это функция fn: doc() XPath или элемент xsl: document.

1

Когда я использую 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>