Форум: "Основная";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
ВнизКак вывести такое (<?xml version="1.0" encoding="windows-1251" ?> Найти похожие ветки
← →
VID © (2006-12-18 19:17) [0]var
Doc: IXMLDOMDocument;
begin
Doc := CoDomDocument.create;
Doc.load("c:\test.xml");
вопрос как вывести на экран (наприер ShowMessage) строку наподобие этой:<?xml version="1.0" encoding="windows-1251" ?>
, но которая будет соответстовать загруженному файлую
(как ваще называется эта строка?)
← →
VID © (2006-12-18 19:17) [1]Delphi7, winxp
← →
umbra © (2006-12-18 19:31) [2]
ShowMessage(doc.XML[0]);
← →
umbra © (2006-12-18 20:12) [3]это я, пожалуй вспылил :(
← →
MetalFan © (2006-12-19 00:35) [4]
...
StringList.LoadFromFile(...);
ShowMessage(StringList[0]);
...
или Doc.xml ?
← →
VID © (2006-12-19 10:24) [5]Вы меня пугаете :)
Все что у нас есть это Doc: IXMLDOMDocument. И в него прогружен некий XML. Вот. И нужно из этого документа (вызывав какие-нибудь его методы) получить строку типа<?xml version="1.0" encoding="windows-1251">
которая, в случае сохранения Doc.Save() была бы первой строкой в сохраненном файле.
← →
VID © (2006-12-19 10:28) [6]Поймите, никакого c:\test.xml на самом деле может и не существовать.
Doc можно заполнить данныим и вручную, создавая в нем элементы и наполняя их аттрибутами. От этого задача не меняется.
← →
Плохиш © (2006-12-19 11:05) [7]Если [2] не помогает, то
Doc.SaveToXml(s);
SetLenght(s, Pos(">"));
ShowMessage(s);
← →
VID © (2006-12-19 12:10) [8]криво. содержимое Doc может достигать пол-сотни мегабайт. ненужная игра с памятью
← →
Reindeer Moss Eater © (2006-12-19 12:14) [9]doc.childNodes.item[0].text;
← →
Reindeer Moss Eater © (2006-12-19 12:16) [10]Поймите, никакого c:\test.xml на самом деле может и не существовать.
Пока документ не сериализован на какой-то носитель, строки с указанием енкодинга может вообще не существовать. даже если её создать явно
doc.createProcessingInstruction("xml","version="1.0" encoding="windows-1251"")
← →
VID © (2006-12-19 12:35) [11]Спасибо. Ценные сведения.
Но с чего все началось ?
Я написал маленький XML форматтер, которые преобразует форматирует XMLину описанную в одной строке, и приводит её к благообразному виду: с отступами и тд.
Но столкнулся с непонятным для меня явлением: Получающаяся на выходе XML (данные и структура которой один-в-один соответствует исходной) при попытке загрузать её в документ не прогружается. Т.е.:
Doc: IXMLDOMDocument;
Doc.load("result_xml");
и doc.documentElement = nil !
Хотя xml прогрузилась без ошибок и правильно оформлена (за это не беспокойтесь).
Если же в первой строке, результирующего XML файла добавить строку типа<?xml version="1.0" encoding="windows-1251" ?>
, то эта XML отлично прогружается.
Но вся фишка в том, что в ИСХОДНОЙ XML не было такой строки ! И это, однако, не мешало ей спокойно прогружаться в документ и doc.documentElement не был равен nil! Вот в чем тут дело, кто знает ?
← →
Reindeer Moss Eater © (2006-12-19 13:05) [12]А с чего ты вдруг решил, что строка
<?xml version="1.0" encoding="windows-1251" ?>
это и есть DocumеntElement?
← →
Reindeer Moss Eater © (2006-12-19 13:10) [13]documentElement Property
Contains the root element of the document.
<ВотМойДокументЭлемент>
<инет_никакого_вершен_и_энкодинг/>
</ВотМойДокументЭлемент>
← →
VID © (2006-12-19 13:47) [14]Я знаю это!
Но ответь тогда, почему так получилось: почему два идентичных по структуре и содержанию файла, один неотформатирован весь в одной строке. другой отформатирован (множество строк. отступы), и тот первый успешно прогружается, а второй - нет ?
← →
Reindeer Moss Eater © (2006-12-19 13:51) [15]Это оптический обман.
← →
VID © (2006-12-19 14:59) [16]Блин я серьезно.. у меня эти два файла. оно так и есть!
← →
Reindeer Moss Eater © (2006-12-19 15:30) [17]Парсеру глубого по барабану, отформатирован xml документ или он одной строкой представлен.
← →
VID © (2006-12-19 15:33) [18]Блин... естесвенно я это знаю. Вот поэтому я и удивлен. Меня как будто не хотят слышать!
← →
Reindeer Moss Eater © (2006-12-19 15:41) [19]Тебе и говорят, что у тебя оптический обман.
Причина в другом.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.042 c