Сравнение 2-х Xml средствами Xslt

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем 3test, 12 окт 2006.

Наш партнер Genesis Hackspace
  1. 3test

    3test Гость

    Мне нужно сравнить два XML документа средствами XSLT 1.0.
    Шаблоны для сравнения двух узлов - я написал. Но, проблема в том, что я не знаю, как одновременно можно перебрать два набора узлов для их сравнения:
    Код (Text):
    <xsl:variable name="A" select="document('file1.xml')"/>
    <xsl:variable name="B" select="document('file2.xml')"/>
    в цикле можно перебрать только один набор:

    <xsl:for-each select="$A/*">
    ...
    </xsl:for-each>

    это ограничение можно было б обойти, если с помощью вызова вспомогательного шаблона :
    Код (Text):
    <xsl:template name="retrieve">
    <xsl:param name="name" />
    <xsl:param name="nodeSet" />

    <xsl:for-each select="$nodeSet">
    <xsl:if test="name(.)=name($name)">
    <xsl:copy-of select="."/>
    </xsl:if>
    </xsl:for-each>
    </xsl:template>
    - можно было б вернуть узел со второго набора элементов.

    Но при вызове
    Код (Text):
    <xsl:variable name="node"> 
    <xsl:call-template name="retrieve">
    <xsl:with-param name="name" select="$e1/A1" />
    <xsl:with-param name="nodeSet" select="$e2/*" />
    </xsl:call-template>
    </xsl:variable>
    возвращает только содержание узла.

    <xsl:value-of select="name($node)"/> - для такого обращения происходит ошибка компиляции...

    Не подскажете, как можно решить такую проблему? Как в XSLT 1.0 одновременно можно обойти два набора узлов?
     
Загрузка...
Похожие Темы - Сравнение Xml средствами
  1. Olej
    Ответов:
    0
    Просмотров:
    128
  2. Erlan
    Ответов:
    8
    Просмотров:
    1.672
  3. k85
    Ответов:
    2
    Просмотров:
    1.186
  4. clas
    Ответов:
    3
    Просмотров:
    1.632
  5. juk-777
    Ответов:
    29
    Просмотров:
    4.785

Поделиться этой страницей