Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно удалить ноду из xml 
V
    Опции темы
DEER
Дата 5.5.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Добрый день, уважаемые.

Есть необходимость при помощи xslt удалить ноду.
Есть xml 
Код

<cn>
    <comp id="1">
        <p systemtype="1"/>
        <vss channels="6" id="1" type="1"/>
    </comp>
    <comp id="2">
        <p systemtype="1"/>
        <vss channels="6" id="1" type="2">
            <card type="5"/>
        </vss>
    </comp>
</cn>

надо убрать ноду <card type="5"/>
если написать такой шаблон
Код

<xsl:template match="/cn/comp/vss[1]/card">
</xsl:template>

то все убирается. Но я заранее не знаю в какой из VSS или же comp будет лежать эта нода

пробовал использовать вместо pattern'а значение из параметра
Код

<xsl:param name="myPatern"/> 
<xsl:template match="$myPatern">
</xsl:template>

но не находит ничего
Также попробовал по иному
Код

<xsl:param name="vssNum"/> 
<xsl:template match="/cn/comp/vss[$vssNum]/card">
</xsl:template>

тут вообще вылетает ошибка.

Не поможете решить проблему?
Заранее спасибо!


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
JVM
Дата 5.5.2008, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 30.10.2006

Репутация: 4
Всего: 5



Код

<xsl:template match="card[@type = '5']">
</xsl:template>


PM MAIL   Вверх
DEER
Дата 5.5.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Спасибо, но не то.
Мне не именно надо избавиться от ноды <card type="5"/>
а надо найти ноду, используя в шаблоне внешнюю переменную.
ну или из твоего примера: возможно ли вместо 5 использовать параметр?
Как я понимаю именно как я хочу нельзя делать. Но необходимо решение, позволяющее избавиться от отпределённой ноды, использя параметры для её нахождения.  smile 


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
JVM
Дата 5.5.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 30.10.2006

Репутация: 4
Всего: 5



DEER, а попробовать использовать параметр не судьба?
PM MAIL   Вверх
DEER
Дата 6.5.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



JVM, я в первом сообщении написал, что пробовал, и что ничего не получилось.
пнятна короче.


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
JVM
Дата 6.5.2008, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 30.10.2006

Репутация: 4
Всего: 5



Потомучно это 
Код

<xsl:template match="/cn/comp/vss[$vssNum]/card">

не правильно = не имеет смысла(попробуй прочитать что ты написал).
а так
Код

<xsl:template match="card[@type = $znachenieAttributa]">
 правильно
PM MAIL   Вверх
DEER
Дата 6.5.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Да пробовал.
Ошибка возникает при вызове.
я это дело пишу на pgsql, так что какая ошибка не могу узнать.
пишет что failed to parse stylesheet:Undefined variable
я решил проблему иным путем.
просто он гиморойный.
сначала ищю все ноды card в нужных местах, если они найдены, то убираю вообще все ноды card из документа.

Спасибо за помощь.


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.