![]() |
|
Модераторы: diadiavova |
![]()
|
|
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
Всем здравствуйте.
Я не профи в создании XSL и XSLT преобразователей, НО сделать мне поручено. есть исходный файл XML? вот кусок из него: __________________________________________________________ <?xml version="1.0" encoding="windows-1251"?> <xdms:communication xdms:version="1.0" xmlns:xdms="http://www.infpres.com/IEDMS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <xdms:header xdms:type="Документ"> <xdms:source xdms:uid="343242342341342123"> <xdms:organization>текст</xdms:organization> </xdms:source> </xdms:header> <xdms:document xdms:uid="тут uid" xdms:id="1464"> <xdms:kind xdms:id="1262720385110" xdms:retro="false" xdms:modified="2002-03-15T00:00:00">текст_2</xdms:kind> и т.д. _____________________________________________________________ Я в своем XSL пытаюсь получить значение текст_2 из тэга kind и присвоить атрибуту, но никак не выходит, вот что я пишу: __________________________________________ <?xml version="1.0" encoding="utf-16" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xdms="http://www.infpres.com/IEDMS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xsl:output method="xml"/> <xsl:template match="/"> ...... ...... <xsl:element name="dictionary"> <xsl:attribute name="fieldType">4</xsl:attribute> <xsl:attribute name="dictionaryName"></xsl:attribute> <xsl:attribute name="value"> <xsl:value-of select="communication/document/kind"/> </xsl:attribute> </xsl:element> ...... ...... ______________________________________________ Вобщем value = "" в выходном XML, помогите люди добрые? чего не так пишу? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Не указал в XPath-выражениях пространства имен.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
diadiavova, не понял. Я XSL не так написал? или в путь до kind надо добавить xdms: ???
я добавил, все равно не получаю значения. Может я не так понял |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Нормально, только длинно очень. Что именно ты добавил? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
вот это добавил - xdms: и еще пробовал со {}, ничего не меняется.
<xsl:attribute name="value"> <xsl:value-of select="//xdms:communication/xdms:document/xdms:kind"/> </xsl:attribute> |
|||
|
||||
| diadiavova |
|
||||||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Вот, собственно, что получилось у меня
XML
XSL
Результат
Добавлено через 2 минуты и 47 секунд А если сделать так XSL
То результат будет таким
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||||||||
|
|||||||||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
круто. а через value-of select нельзя делать? т.е. с моей конструкцией - как засунуть этот путь правильно?
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Да точно так же как у тебя
Только зачем? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
а у меня value при такой конструкции все равно пустое :( вот:
<?xml version="1.0" ?> - <interchangeData creationTime="" unitName="" territoryId="" organizationName=""> - <documentDescriptor docCode="" docName="" schemaId="" schemaName="" processCode="" processName="" categoryCode="" categoryName="" docID="" docCreationTime="" docCreator="" annotation="" docProcessor=""> <versionDescriptor versionId="" versionCreationTime="" versionCreator="" termTime="" versionPath="" versionRoute="" phaseNo="" phaseName="" folderName="" state="входящая необработанная версия" parentVersionId="" fileExtension="" resolutions="" /> - <cardBody cardCode="" cardName="" cardComment="" fieldCaption="-" fieldCode="2"> <dictionary fieldType="4" fieldCode="" fieldKey="" fieldCaption="ВИД ДОКУМЕНТА" dictionaryId="" dictionaryName="" value="" /> Добавлено через 46 секунд
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Хочешь сказать, что короткий вариант у тебя работает, а длинный при всех прочих равных - нет? И, пожалуйста, пользуйся подсветкой кода и переносами где это возможно. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
извиняюсь за длинные строчки, буду переносить!
я не проверял короткий вариант, ты написал, что у тебя сработало - я не стал проверять. У нас все XSLT написаны "чудесным" длинным образом, и надо сохранить красоту первозданную - почему может не работать эта хрень с value-of ? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
У меня и длинный сработал. Скорей всего причина в чем-то другом, но, не видя всей картины, я тут ничего сказать не могу. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
всё! чудес не бывает
но Xpath конечно - зачетная подсказка, спасибо большое! |
|||
|
||||
| mediate |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
Еще вопросик появился, связан с выборкой из ряда повторяющихся элементов, для наглядности вот:
Мне нужно найти определенную организацию и из неё вытащить значение person, т.е. организация Рособразование, згачит надо вытащить из person - Димон. Как это сделать? как попасть именно в правильный элемент addressee? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |