Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Внешний файл document() / 6 сообщений из 6, страница 1 из 1
08.06.2010, 12:50
    #36675184
walek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний файл document()
Привет друзья.
У меня проблема с функцией document(), не получается вывести узел.
Есть внешний xml:


<?xml version="1.0" encoding="windows-1251" ?>
<Metall FromDate="20100605" ToDate="20100605" name="Precious metals quotations">
<Record Date="05.06.2010" Code="1"><Buy>1202,15</Buy><Sell>1202,15</Sell></Record>
<Record Date="05.06.2010" Code="2"><Buy>18,25</Buy><Sell>18,25</Sell></Record>
<Record Date="05.06.2010" Code="3"><Buy>1544,26</Buy><Sell>1544,26</Sell></Record>
<Record Date="05.06.2010" Code="4"><Buy>449,49</Buy><Sell>449,49</Sell></Record>
</Metall>


Допустим я хочу вывести узел Sell.
Вроде бы всё должно быть просто:
<xsl:value-of select="document(/XML/CBR/CBRYesterdayMetall.xml)/Metall/Record/Sell" />

Но эта конструкция не работает.
В чём может быть ошибка?

Спасибо.
...
Рейтинг: 0 / 0
08.06.2010, 22:41
    #36676680
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний файл document()
Название и версию XSLT процессора в студию
...
Рейтинг: 0 / 0
09.06.2010, 07:21
    #36676910
walek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний файл document()
MSXML 4.0

Пробовал указывать абсолютный путь, ставить кавычки, не помогает.
Замечу, что парсинг происходит во внутренней сети.
...
Рейтинг: 0 / 0
09.06.2010, 22:11
    #36679374
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний файл document()
...
Рейтинг: 0 / 0
10.06.2010, 09:59
    #36679845
walek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний файл document()
_Vasilisk_ , спасибо, у меня другая проблема возникла.

Пытаюсь сделать таблицу, вида (1 строка):
Золото 1202,15 1268,72
....

Значение во втором столбце берется из вышеприложенного XML, 3 столбец заполняется значениями из второго xml такого-же формата, только соответственно с другими значениями.

Делаю так:
автор<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="Metall">
<table border="1">
<colgroup>
<col></col>
<col style="padding-left: 15px;"></col>
</colgroup>
<xsl:apply-templates select="Record" />
</table>
</xsl:template>

<xsl:template match="Record">
<tr>
<td>
<xsl:call-template name="metall">
<xsl:with-param name="code" select="@Code" />
</xsl:call-template>
</td>
<td style="text-align: right;"><xsl:value-of select="Sell" /></td>
<td style="text-align: right;"><xsl:call-template name="qwerty" />
</td>
</tr>
</xsl:template>

<xsl:template name="metall">
<xsl:param name="code" />

<xsl:choose>
<xsl:when test="$code=1">Золото</xsl:when>
<xsl:when test="$code=2">Серебро</xsl:when>
<xsl:when test="$code=3">Платина</xsl:when>
<xsl:when test="$code=4">Палладий</xsl:when>
</xsl:choose>
</xsl:template>

<xsl:template match="/" name="qwerty">
<xsl:for-each select="document('CBRYesterdayMetall.xml')//Record">
<xsl:value-of select="Sell" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Мне интересно, почему не работает конструкция вызовы шаблона name="qwerty"?

Спасибо!
...
Рейтинг: 0 / 0
10.06.2010, 14:42
    #36680737
walek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешний файл document()
Упс, нагородил огород, сделал так:

автор<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="Metall">
<table border="1">
<colgroup>
<col></col>
<col style="padding-left: 15px;"></col>
</colgroup>
<tr>
<td></td>
<td>c <xsl:value-of select="document('CBRYesterdayMetall.xml')/Metall/@FromDate" /></td>
<td>c <xsl:value-of select="@FromDate" /></td>
</tr>
<xsl:apply-templates select="Record" />
</table>
</xsl:template>

<xsl:template match="Record">
<xsl:variable name="cd" select="@Code" />
<tr>
<td>
<xsl:call-template name="metall">
<xsl:with-param name="code" select="@Code" />
</xsl:call-template>
</td>
<td style="text-align: right;">
<xsl:apply-templates select="document('CBRYesterdayMetall.xml')//Record[@Code=$cd]/Sell" />
</td>
<td style="text-align: right;"><xsl:value-of select="Sell" /></td>
</tr>
</xsl:template>

<xsl:template name="metall">
<xsl:param name="code" />
<xsl:param name="codes" />

<xsl:choose>
<xsl:when test="$code=1">Çîëîòî</xsl:when>
<xsl:when test="$code=2">Ñåðåáðî</xsl:when>
<xsl:when test="$code=3">Ïëàòèíà</xsl:when>
<xsl:when test="$code=4">Ïàëëàäèé</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Внешний файл document() / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]