|
Пространства имён для преобразования xml-строк 1С | ☑ | ||
---|---|---|---|---|
0
EugeneSemyonov
22.09.16
✎
15:59
|
Доброго дня, всем!
Подскажите, кто знает какие пространства имён XSL необходимо использовать для преобразования результатов сериализации объектов 1C? Конкретно мне нужно из сериализованного документа удалить реквизит. Шаблон для преобразования сообщений обмена 1С у меня есть, но на сериализованном объекте он не отрабатывает. Пример сериализованного объекта: <DocumentObject.Заявка xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DocumentObject.Заявка"> <Ref>660325f5-80a7-11e6-941d-ac220bb7949b</Ref> <DeletionMark>false</DeletionMark> <Date>2016-09-22T12:31:55</Date> <Number>00ЗК-00014</Number> <Posted>false</Posted> <Фирма>00000000-0000-0000-0000-000000000000</Фирма> <ДатаПоставки>2016-09-21T00:00:00</ДатаПоставки> <Павильон>0dc7301f-359b-11e4-a3e8-bcee7b9ca45f</Павильон> <Газель>0dc7301f-359b-11e4-a3e8-bcee7b9ca45f</Газель> <Ответственный>00000000-0000-0000-0000-000000000000</Ответственный> <Обработана>false</Обработана> <Комментарий/> <ЗаявкаПоваров>false</ЗаявкаПоваров> <КонтрольнаяСумма/> <Состав> <Номенклатура>801eb422-addd-11e3-9528-00155d00c900</Номенклатура> <Единица>ac5c9e52-8772-11e4-8bf7-bcee7b9ca45f</Единица> <Количество>0</Количество> <Коэффициент>0.4</Коэффициент> <КолЗак>0</КолЗак> <ЕдЗак>00000000-0000-0000-0000-000000000000</ЕдЗак> <КоэффЗак>0</КоэффЗак> <Справочно>0</Справочно> </Состав> </DocumentObject.Заявка> Шаблон преобразования сообщения обмена: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:v8msg="http://v8.1c.ru/messages" <--Здесь нужно указать правильное пространство имён -->> <xsl:output method="xml" encoding="UTF-8"/> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match=" <--Здесь нужно указать правильное пространство имён --> /DocumentObject.Заявка/КонтрольнаяСумма"/> </xsl:stylesheet> |
|||
1
Cyberhawk
22.09.16
✎
17:03
|
"Шаблон преобразования сообщения обмена" // Впервые слышу
|
|||
2
Mauser
22.09.16
✎
17:15
|
Вот интересно.
Какая связь между "мне нужно удалить реквизит" и "Шаблон для преобразования сообщений обмена"? Мне холодно, у меня есть четверг, но кружка не кактус? |
|||
3
Fragster
гуру
22.09.16
✎
17:35
|
написано же: xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config"
|
|||
4
EugeneSemyonov
23.09.16
✎
09:54
|
(1) Пусть будет: "XSL с помощью которого получается преобразовывать XML-ные сообщения обмена 1С"
(2) Прикол в том что без указания правильного пространства имён строка полностью копируется без удаления ненужного мне реквизита. (3) вставил xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config" вместо xmlns:v8msg="http://v8.1c.ru/messages", попробовал вместе эти пространства имен оставить - результата 0. Есть у кого матчасть? Дайте ссылку. |
|||
5
Mauser
23.09.16
✎
10:04
|
||||
6
Fragster
гуру
23.09.16
✎
10:22
|
(4) xmlns="" надо вставить наверх, во второй кусок надо вставить что-то, чтобы было типа ".//DocumentObject.Заявка/..."
|
|||
7
Fragster
гуру
23.09.16
✎
10:22
|
это же выражение xpath, вроде
|
|||
8
EugeneSemyonov
26.09.16
✎
12:24
|
(5) Спасибо. Гуглом я пользоваться умею. 1С-ных пространств имён в буржуйских туториалах нет и не будет.
От 1С есть у кого-нить рекомендации и примеры по использованию ПреобразованиеXSL? |
|||
9
EugeneSemyonov
26.09.16
✎
12:32
|
(6) "не выходит каменный цветок..."
|
|||
10
hhhh
26.09.16
✎
12:43
|
есть пространство имен. А есть схема. Это две разные вещи.
|
|||
11
Fragster
гуру
26.09.16
✎
12:44
|
(10) автор хочет сделать так, чтобы из одного current-config преобразовать XML в другой current-config. подход интересный, в некоторых случаях может ускорить выгрузку-загрузку данных в десятки раз.
|
|||
12
Mauser
26.09.16
✎
12:50
|
(8) И чем 1С-ное пространство имен отличается от не 1С-ного?
Злобные 1С-ники придумали свой XML и XSLT? |
|||
13
hhhh
26.09.16
✎
21:51
|
(12) это в 1с давно всё придумали, задолго до автора.
|
|||
14
Mauser
26.09.16
✎
22:00
|
(13) Это желтые их черти бермутят воду во пруду, все придумал Нуралиев в восемнадцатом году.
|
|||
15
DrShad
26.09.16
✎
22:13
|
да забей ты вообще на пространство имен, оно нужно для описания в схеме различных типов и для чтения практически бесполезная штука
|
|||
16
Mauser
26.09.16
✎
22:15
|
Практически бесполезная штука [x]
|
|||
17
EugeneSemyonov
27.09.16
✎
11:54
|
(15) Подскажи, пожалуйста, тогда почему реквизит не удаляется?
|
|||
18
EugeneSemyonov
27.09.16
✎
11:58
|
(12) не поверишь! именем! ;-)
|
|||
19
hhhh
27.09.16
✎
12:02
|
(17) но почему оно должно удалять? Где у вас в шаблоне этом удаление?
|
|||
20
Mauser
27.09.16
✎
12:03
|
(19) Перед тегом закрытия </xsl:stylesheet>
|
|||
21
Mauser
27.09.16
✎
12:04
|
(19) Оно создает новый документ путем копирования всех узлов и атрибутов, за исключением указанного. Для определенного элемента происходит ничего =)
|
|||
22
hhhh
27.09.16
✎
12:08
|
(21) ну а причем тут пространство имен? Может же быть 10 пространств имен в одном документе?
|
|||
23
EugeneSemyonov
27.09.16
✎
12:08
|
Миш, ты ничего не подскажешь?
|
|||
24
Mauser
27.09.16
✎
12:10
|
(22) Да. Для срабатывания шаблона производящего ничего, ему надо попасть в квалифицированное имя узла. Оно прямо зависит от пространства имен обрабатываемого документа и немного косвенно - от пространства имен по умолчанию, в котором идет обработка шаблонов. Про это подробно написано по ссылкам в (5)
|
|||
25
Mauser
27.09.16
✎
12:12
|
Но, вместо изучения матчасти, Женя ждет готового решения, потому что, дескать, пространство http://v8.1c.ru/8.1/data/enterprise/current-config - особенное
|
|||
26
EugeneSemyonov
27.09.16
✎
12:55
|
(25) Честно признаться, на данный момент, необходимость использования данного решения отпала, но я уверен - пригодится в будущем. Поэтому я не забросил тему, а попробовал сделать как советовал ещё Fragster (3) (6). Не получилось. Прямо сейчас подробно изучать XSL в мои планы не входит.
В принципе тему можно закрывать, хоть и без решения. За ссылки спасибо ;-) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |