Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование одного формата XML в другой XML формат с помощью файла XSL / 5 сообщений из 5, страница 1 из 1
01.06.2019, 15:03
    #39821131
ViVa3006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование одного формата XML в другой XML формат с помощью файла XSL
Здравствуйте!
Помогите пожалуйста в преобразовании строки.
Пишу часть кода из xml файла:

Исходный xml:

<Shipper>
<Address>в городе Мирном, 678174, г. Мирном, Россия, Саха (Якутия) Респ. г. Мирн ный, пр-кт. Ленинградский, 19 65</Address>
</Shipper>


Либо может быть в таком виде:

<Seller>
<Address>119049, город Москва, 4-й Добрынинский переулок, дом 8, офис Д08 тел. (495) 980-75-56</Address>
</Seller>

С помощью xsl преобразования нужно получить тоже xml в таком формате:

<Адрес>
<АдрРФ Индекс="678174" КодРегион="14" Улица="пр-кт. Ленинградский" Дом="19" Кварт="65" />
</Адрес>

либо:

<Адрес>
<АдрРФ Индекс="119049" КодРегион="77" Улица="4-й Добрынинский переулок" Дом="8" Корпус="495" Кварт="-56" />
</Адрес>

Необходим код xsl.

Буду рада любым подсказкам.
...
Рейтинг: 0 / 0
02.06.2019, 09:44
    #39821264
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование одного формата XML в другой XML формат с помощью файла XSL
Вы хотите распарсить текст " в городе Мирном, 678174, г. Мирном, Россия, Саха (Якутия) Респ. г. Мирн ный, пр-кт. Ленинградский, 19 65 " по полям объекта? Это не тривиальная задача даже для языка программирования, не то что для языка разметки. Как в общем случае догадаться, что в тексте "19 65" 19 это номер дома, а 65 - квартира? А код региона откуда взять? В исходных данных его вообще нет.

В xslt в принципе бедноватый функционал для работы со строками, не предназначен он для этого.
...
Рейтинг: 0 / 0
02.06.2019, 09:49
    #39821265
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование одного формата XML в другой XML формат с помощью файла XSL
Яндекс.карты хорошо разбирают адреса, но я уверен, что это делается по базе адресов, а не алгоритмически.
...
Рейтинг: 0 / 0
02.06.2019, 11:43
    #39821276
ViVa3006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование одного формата XML в другой XML формат с помощью файла XSL
Antonariy, спасибо за комментарий.
Думала, может в xslt есть какие-то функции, которые могут это позволить. Я в нем только начала разбираться, поэтому не сильна. Про код региона у меня тот же вопрос. Может какое-то сопоставление с городом или индексом должно быть. Но для этого тоже нужна какая-то база наверно.
...
Рейтинг: 0 / 0
03.06.2019, 13:53
    #39821662
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование одного формата XML в другой XML формат с помощью файла XSL
ViVa3006
Код: xml
1.
<Address>119049, город Москва, 4-й Добрынинский переулок, дом 8, офис Д08 тел. (495) 980-75-56</Address>

ViVa3006
Код: xml
1.
<АдрРФ Индекс="119049" КодРегион="77" Улица="4-й Добрынинский переулок" Дом="8" Корпус="495" Кварт="-56" />

Уже у вас парсинг уехал. Какой 495 корпус и -56 квартира?

На XSL можно, что-то придумать, но для этого входные строки должны быть нормализованы
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование одного формата XML в другой XML формат с помощью файла XSL / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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