Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите, плиз!!! / 4 сообщений из 4, страница 1 из 1
29.06.2007, 14:37
    #34628958
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плиз!!!
Как из такого:
- <Субъект_в_операции>
<Роль_субъекта>От кого</Роль_субъекта>
<Субъект idref="Юридическое_лицо_005R" />
</Субъект_в_операции>
- <Субъект_в_операции>
<Роль_субъекта>Кому</Роль_субъекта>
<Субъект idref="ФизическоеЛицо_000C" />
</Субъект_в_операции>

преобразовать с условием, чтобы он брал субъект нужный. Я делаю так:
<xsl:variable name="AGENT_FROM_RN">
<xsl:call-template name="GenerateRN">
<xsl:with-param name="sSource" select="./Субъект_в_операции/Субъект/@idref"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="InsertElement">
<xsl:with-param name="sElemName" select="'AGENT_FROM'"/>
<xsl:with-param name="sDataTypeValue" select="'NUMBER'"/>
<xsl:with-param name="sValue" select="$AGENT_FROM_RN"/>
</xsl:call-template>
<xsl:variable name="AGENT_TO_RN">
<xsl:call-template name="GenerateRN">
<xsl:with-param name="sSource" select="./Субъект_в_операции/Субъект/@idref"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="InsertElement">
<xsl:with-param name="sElemName" select="'AGENT_TO'"/>
<xsl:with-param name="sDataTypeValue" select="'NUMBER'"/>
<xsl:with-param name="sValue" select="$AGENT_TO_RN"/>
</xsl:call-template>

Естественно таким образом он будет брать один и тот же субъект(самый первый), но как сделать, чтобы:
если написано От кого берем такого-то
если написано Кому берем такого-то.
Заранее спасибо.
...
Рейтинг: 0 / 0
29.06.2007, 16:45
    #34629426
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плиз!!!
СпиК... Я делаю так:
<xsl:variable name="AGENT_FROM_RN">
<xsl:call-template name="GenerateRN">
...
А как-нить попроще не пытался (без переменных, именованных шаблонов с параметрами и прочей "хрени")?
Типа так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
...
<xsl:template match="/|*">
    <xsl:element name="ROOT">
	    <xsl:apply-templates select="//Субъект_в_операции"/>
    </xsl:element>
</xsl:template>

<xsl:template match="Субъект_в_операции[Роль_субъекта='От кого']">
    <xsl:element name="AGENT_FROM">
        <xsl:value-of select="Субъект/@idref" />
    </xsl:element>
</xsl:template>

<xsl:template match="Субъект_в_операции[Роль_субъекта='Кому']">
    <xsl:element name="AGENT_TO">
        <xsl:value-of select="Субъект/@idref" />
    </xsl:element>
</xsl:template>
...
...
Рейтинг: 0 / 0
02.07.2007, 07:59
    #34631107
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плиз!!!
У меня такого вида template match. И в нем не два параметра(Роль_субъекта='От кого', Роль_субъекта='Кому' ), а много. Так что, так не подойдет.
<xsl:template match="ррррр">
....
<xsl:element name="ROW">
......
<xsl:variable name="AGENT_FROM_RN">
<xsl:call-template name="GenerateRN">
<xsl:with-param name="sSource" select="./Субъект_в_операции/Субъект/@idref"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="InsertElement">
<xsl:with-param name="sElemName" select="'AGENT_FROM'"/>
<xsl:with-param name="sDataTypeValue" select="'NUMBER'"/>
<xsl:with-param name="sValue" select="$AGENT_FROM_RN"/>
</xsl:call-template>
<xsl:variable name="AGENT_TO_RN">
<xsl:call-template name="GenerateRN">
<xsl:with-param name="sSource" select="./Субъект_в_операции/Субъект/@idref"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="InsertElement">
<xsl:with-param name="sElemName" select="'AGENT_TO'"/>
<xsl:with-param name="sDataTypeValue" select="'NUMBER'"/>
<xsl:with-param name="sValue" select="$AGENT_TO_RN"/>
</xsl:call-template>
.......
</xsl:element>
</xsl:template>


Ну кто-нибудь наверняка знает! Помогите!!!
...
Рейтинг: 0 / 0
02.07.2007, 12:58
    #34631882
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плиз!!!
СпиКУ меня такого вида template match. И в нем не два параметра(Роль_субъекта='От кого', Роль_субъекта='Кому' ), а много. Так что, так не подойдет...
А при чем тут вообще параметры ("много" их или "мало")?
Я говорил про "подход в целом" - зачем формировать элементы через вызов именованных шаблонов (a-la "функций с параметрами"), если их можно формировать обычными шаблонами, просто добавляя "лишние" условия в XPath-predicates?
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите, плиз!!! / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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