Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1166603258
fishka
2006-12-20 11:27
2007.02.11
IdTelnet и получение ответов


15-1169509631
Константинов
2007-01-23 02:47
2007.02.11
Интернет провайдер расскажите поподроднее :)


2-1169736265
АК
2007-01-25 17:44
2007.02.11
"умное связывание" компилятора


2-1169709085
oops
2007-01-25 10:11
2007.02.11
ADONETConnection - куда он делся?


8-1150349926
Vasiliy
2006-06-15 09:38
2007.02.11
Управление выходом видеокарты ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский