![]() |
![]() |
![]() |
|
Как сделать чтобы ФабрикаXDTO не писала в XML пространство имен? | ☑ | ||
---|---|---|---|---|
0
dimqa
29.04.13
✎
17:15
|
Как сделать чтобы ФабрикаXDTO не писала в XML пространство имен?
Вообще так возможно сделать? Код: дТип = ФабрикаXDTO.Тип("http://lh","Корень"); ЧтениеXML = новый ЧтениеXML; ЧтениеXML.ОткрытьФайл("ish.xml"); дОбъект = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,дТип); ЧтениеXML.Закрыть(); ЗаписьXML = новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("target.xml","Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML,дОбъект); ЗаписьXML.Закрыть(); Исходный текст XML: <?xml version="1.0" encoding="windows-1251"?> <Корень> <Поле1>Значение1</Поле1> <Сотрудники> <Сотрудник> <Фамилия>Иванов</Фамилия> <Имя>Иван</Имя> </Сотрудник> <Сотрудник> <Фамилия>Петров</Фамилия> <Имя>Петр</Имя> </Сотрудник> </Сотрудники> </Корень> Результирующий XML: <?xml version="1.0" encoding="Windows-1251"?> <Корень xmlns="http://lh" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Поле1 xmlns="">Значение1</Поле1> <Сотрудники xmlns=""> <Сотрудник> <Фамилия>Иванов</Фамилия> <Имя>Иван</Имя> </Сотрудник> <Сотрудник> <Фамилия>Петров</Фамилия> <Имя>Петр</Имя> </Сотрудник> </Сотрудники> </Корень> Как убрать эти самые xmlns? Чтобы прийти к исходному тексту |
|||
1
Fragster
гуру
29.04.13
✎
17:17
|
а зачем ты указываешь при создание?
|
|||
2
Fragster
гуру
29.04.13
✎
17:17
|
это самое пространство имен?
|
|||
3
dimqa
29.04.13
✎
17:19
|
(2) xmlns="http://lh" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Вот это, а так же xmlns=""
|
|||
4
dimqa
29.04.13
✎
17:21
|
а как иначе? Если тип не указать вообще в <anyType> вместо корня записывает
|
|||
5
zladenuw
29.04.13
✎
17:22
|
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML,дОбъект,,"");
|
|||
6
dimqa
29.04.13
✎
17:25
|
(5) Получше, но всё равно осталось у корня((
<?xml version="1.0" encoding="Windows-1251"?> <Корень xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Поле1>Значение1</Поле1> <Сотрудники> <Сотрудник> <Фамилия>Иванов</Фамилия> <Имя>Иван</Имя> </Сотрудник> <Сотрудник> <Фамилия>Петров</Фамилия> <Имя>Петр</Имя> </Сотрудник> </Сотрудники> </Корень> |
|||
7
Serginio1
29.04.13
✎
17:37
|
v8: Десериализация XDTO в web-сервисе
Смотри v8: Десериализация XDTO в web-сервисе перейтиКСодержимому |
|||
8
dimqa
29.04.13
✎
17:37
|
Очень не хочется дописывать в код:
Текст = новый ТекстовыйДокумент; Текст.Прочитать("target.xml"); Текст.ЗаменитьСтроку(2,"<Корень>"); текст.Записать("target.xml",КодировкаТекста.ANSI); т.к. Файлик достаточно большой, а комп не достаточно быстрый Должно же быть какое то решение, кроме как через Ж |
|||
9
dimqa
29.04.13
✎
17:47
|
(7) Либо я что то не так понял, либо это не помогло
Код ЧтениеXML = новый ЧтениеXML; ЧтениеXML.ОткрытьФайл("ish.XML"); ЧтениеXML.ПерейтиКСодержимому(); дТип=ФабрикаXDTO.Тип(ЧтениеXML.URIПространстваИмен,ЧтениеXML.Имя); дОбъект = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,дТип); ЧтениеXML.Закрыть(); ЗаписьXML = новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("target.xml","Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML,дОбъект,,""); ЗаписьXML.Закрыть(); |
|||
10
zladenuw
29.04.13
✎
17:47
|
ЧтениеXML = новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("D:\test2.xml"); дОбъект = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); дОбъект.Сбросить("Поле1"); ЧтениеXML.Закрыть(); ЗаписьXML = новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("D:\target.xml","Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML,дОбъект); ЗаписьXML.Закрыть(); |
|||
11
dimqa
29.04.13
✎
17:54
|
(10) Не привело к желаемому результату
<?xml version="1.0" encoding="Windows-1251"?> <anyType xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Сотрудники xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <Сотрудник> <Фамилия>Иванов</Фамилия> <Имя>Иван</Имя> </Сотрудник> <Сотрудник> <Фамилия>Петров</Фамилия> <Имя>Петр</Имя> </Сотрудник> </Сотрудники> </anyType> Даже хуже чем было) |
|||
12
dimqa
29.04.13
✎
17:54
|
Похоже придётся остановиться на варианте с заменой второй строки. Печально
|
|||
13
Serginio1
29.04.13
✎
17:55
|
(12) Или пропустить её при чтении.
|
|||
14
Serginio1
29.04.13
✎
17:58
|
А чем тебе мешает xmlns?
У каждого объекта должно быть пространство имен. |
|||
15
zladenuw
29.04.13
✎
18:03
|
(10) завтык надо вот так ФабрикаXDTO.ЗаписатьXML(ЗаписьXML,дОбъект,,"");
|
|||
16
zladenuw
29.04.13
✎
18:03
|
и будет такая хмл
<?xml version="1.0" encoding="WINDOWS-1251"?> -<anyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns=""> -<Сотрудники> -<Сотрудник> <Фамилия>Иванов</Фамилия> <Имя>Иван</Имя> </Сотрудник> -<Сотрудник> <Фамилия>Петров</Фамилия> <Имя>Петр</Имя> </Сотрудник> </Сотрудники> </anyType> |
|||
17
dimqa
29.04.13
✎
21:00
|
(14) Просто на пути от одной точки до другой - нужно сделать некоторую обработку XML. Хочу сделать, чтобы было практически не заметно, вот и заморочился... Впрочем желаемого результата добился да и ладно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |