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

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

  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. Erlan
    Ответов:
    8
    Просмотров:
    1.639
  2. k85
    Ответов:
    2
    Просмотров:
    1.149
  3. clas
    Ответов:
    3
    Просмотров:
    1.602
  4. juk-777
    Ответов:
    29
    Просмотров:
    4.705
  5. aank10
    Ответов:
    3
    Просмотров:
    1.969

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