Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

Как вывести такое (<?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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.04 c
4-1159525169
RoadStar
2006-09-29 14:19
2007.02.11
Получение данных об оперативной памяти


1-1166611676
_ozzy_
2006-12-20 13:47
2007.02.11
Как запретить подтверждение на замену(удаление) Windows?


15-1169554558
1234564
2007-01-23 15:15
2007.02.11
Посоветуйте обучалку по ХТМЛ


15-1169497825
xayam
2007-01-22 23:30
2007.02.11
Наш пров увеличил скорость в два раза))


2-1169890385
tu_21
2007-01-27 12:33
2007.02.11
Запись в Access