Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Сравнение 2-х XML средствами XSLT

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов
Предыдущая тема :: Следующая тема  
Автор Сообщение
3test



Зарегистрирован: 21.12.2005
Сообщения: 2
Откуда: Киев

СообщениеДобавлено: Чт Окт 12 2006 22:03    Заголовок сообщения: Сравнение 2-х XML средствами XSLT Ответить с цитатой

Мне нужно сравнить два XML документа средствами XSLT 1.0.
Шаблоны для сравнения двух узлов - я написал. Но, проблема в том, что я не знаю, как одновременно можно перебрать два набора узлов для их сравнения:

Код:
<xsl:variable name="A" select="document('file1.xml')"/>
<xsl:variable name="B" select="document('file2.xml')"/>


в цикле можно перебрать только один набор:

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

это ограничение можно было б обойти, если с помощью вызова вспомогательного шаблона :

Код:

<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>

- можно было б вернуть узел со второго набора элементов.

Но при вызове

Код:

<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 одновременно можно обойти два набора узлов?

У кого-то есть какие-то идеи по этому поводу?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...