|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Привет! У меня следующий вопрос. Есть источник - база аксесс, оттуда таблица, методом экспорта, выгружается в файл xml, затем этот файл нужно преобразовать. Нужно поменять текст в корневом теге и вставить дополнительный тег группировки. Для наглядности привожу, что получается и что нужно... Получается: - <dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2005-10-28T11:15:58"> ' ЭТО НУЖНО ЗАМЕНИТЬ НА СЕАНС- <Субъект> ' ЭТО НУЖНО ДОПОЛНИТЬ АТРИБУТАМИ <Тип>Предп_орг</Тип> ' ЭТО НУЖНО ПЕРЕНЕСТИ В АТРИБУТЫ <Код>111_0110</Код> ' И ЭТО НУЖНО ПЕРЕНЕСТИ В АТРИБУТЫ<Название>ОАО "ЛИПЕЦКОБЛБАНК", Г. ЛИПЕЦК</Название> <ИНН>7606002866</ИНН> </Субъект> Нужно: - <Сеанс> - <Субъект Тип="Предп_орг" Код="111_0110"> <Название>ОАО "ЛИПЕЦКОБЛБАНК", Г. ЛИПЕЦК</Название> <ИНН>4825004973</ИНН> - <ГруппыОбъекта> ' ЭТО НУЖНО ДОБАВИТЬ - <ГруппаОбъекта> ' ЭТО НУЖНО ДОБАВИТЬ <Код>Клиент</Код> ' ЭТО НУЖНО ДОБАВИТЬ<Вид_кл>Ю</Вид_кл> ' ЭТО НУЖНО ДОБАВИТЬ<Банк>Д</Банк> ' ЭТО НУЖНО ДОБАВИТЬ </ГруппаОбъекта> ' ЭТО НУЖНО ДОБАВИТЬ </ГруппыОбъекта> ' ЭТО НУЖНО ДОБАВИТЬ</Субъект> То есть, видимо, вопрос разбивается на два: 1) Как изменять текст в xml 2) Как вставить группировку Помогите плиз :( Очень надо... Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2005, 11:12 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Варианты решения: 1) Использовать преобразование XSL 2) Написать свою процедурку, которая берет данные из твоей таблицы и выводит их в обычный текстовый файл (тот самый XML). В твоем случае вариант 2 мне кажеся предпочтительнее - он быстрее в разработке. С другой стороны, на будущее знать работу связки XML-XSL тоже не вредно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2005, 12:47 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Решила двигаться по второму варианту. Экспортирую файл из Access2003 в UTF8, затем посредством OpenTextFile и ReadLine копирую построчно информацию в новый файл xml. Но! Возникла проблема с чтением строк. Там, где английские буквы все считывается замечательно, там же, где русские, считывает тарабарщину. <?xml version="1.0" encoding="UTF-8" ?> 'НОРМАЛЬНО - <dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2005-11-22T16:33:08"> 'НОРМАЛЬНО - <Субъект> 'А ВОТ ЗДЕСЬ <Субъект> Что делать? Перелопатила весь инет в поисках ответа, нашла много функций, но ни одна не подошла :( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2005, 18:28 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Может быть я невнятно выразился, но я имел ввиду вот что: 1) Делаешь запрос к своей исходной таблице, в который вытаскиваешь нужные тебе данные 2) Открываешь дисковый файл на запись- это будет твой итоговый файл XML 3) Пишешь в него заголовок XML-файла. В твоем случае это будет <Сеанс> 4) Бежишь в цикле по рекордсету и пишешь в в файл свои данные из запроса, плюс к этому то, что тебе надо дополнить 5) Пишешь в него </Сеанс> 6) Закрываешь файл и тащишся как удав по стекловате! Ежели что не понятно-спрашивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2005, 23:41 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Что-то в таком вот духе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2005, 00:02 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Fat Lamer! Ты просто супер!!! Спасибо тебе огромное! Вот где загвоздка то была! не нужно было городить выгрузку в xml, а потом его изменение, а сразу формировать необходимый файл из таблицы...Спасибо тебе еще раз!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2005, 21:33 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Fat Lamer, доброе утро. сделал так как вы посоветовали автору сообщения, но почему то при открытие XML файла выдает ошибку вот код программы экспорта Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 09:00 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
То, что вы привели, не дает нужной информации. Смотрите, что находится в XML файле, в 5-й строке, где TTN ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 10:10 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Приведённый olang@tut.by код, характеризует его как человека неленивого... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 12:06 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
MrShin, вот что стоит в строке (русские буквы выделены синим). меняю на английские - ошибка пропадает. <?xml version='1.0' encoding='UTF-8'?> <ArrayOfItemTTN xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/200l/XMLSchema'> <IitemTTN> <TYPEOTR>2</TYPEOTR> <TTN>343434:ккк:21.11.2017</TTN> <POL>345345345:18010000186:АО "Казцинк"</POL> ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 15:14 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
У вас в заголовке указано encoding='UTF-8', т.е. используется кодировка UTF-8. А ваш код создает файл в кодировке ANSI (windows-1251). ANSI? это однобайтовые символы с кодами от 0 до 255, а в UTF-8 однобайтовые только символы с кодами 0-127, а любые другие - 2-х и даже 3-х байтовые. Видимо тут собака и порылась. Писать файл в UTF-8 умеет ADODB.Stream. Используйте эту библиотеку. Примеры можно нагуглить в ассортименте. Еще можно попробовать указать encoding="windows-1251" вместо encoding='UTF-8', но в xsd схеме тоже указана кодировка. В этом я не силен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 15:55 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
olang@tut.by, дай базу, в ней только таблица, запрос и xml-файл как должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 16:12 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Панург, в архиве все файлы с доковой документацией по xml файлу. может дело в ковычках перед UTF-8, но я пробовал и двойные ковычки и одинарные - результат один. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 09:05 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
olang@tut.by, у Вас xml-файл имеет кодировку не UTF-8, а windows-1251, Анатолдий Вам оь этом уже писал. После преобразования кодировки все прекрасно открывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 11:40 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Прошу прощения за опечатки в предыдущем сообщении. Вот код для преобразования кодировки: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 11:46 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Еще раз прошу прощения, замените Код: vbnet 1.
на Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 12:04 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
xax_nv, Спасибо все пошло) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 13:20 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
olang@tut.byxax_nv, Спасибо все пошло) Что пошло? Создать файл средствами VBA, а затем преобразовать предложенной функцией? Логичнее сразу создавать файл с помощью ADODB.Stream. Например: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 14:35 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
olang@tut.by, немного подзадержался. В функции используется XSLT-преобразование. Для наглядности выкидывает в файл XML, но можно (я так понимаю тебе это отправлять нужно?) сразу отправлять как запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 15:52 |
|
Как изменить текст в XML
|
|||
---|---|---|---|
#18+
Поправил. Пришлось исправить твою функцию getGUID подправить - добавить необязательный параметр, т.к в запросе возвращала один и тот же GUID . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 16:07 |
|
|
start [/forum/topic.php?fid=45&fpage=62&tid=1611898]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 160ms |
0 / 0 |