Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.02.28;
Скачать: [xml.tar.bz2];

Вниз

вопрос про XML   Найти похожие ветки 

 
vegarulez ©   (2009-12-25 15:31) [0]

Добрый день мастерам!
Вопрос следующий использую в элементе xml строку вида:

...
<element_xml>
stroka
vot
takogo
vida
<element_xml>


и пытаюсь из неё потом выдернуть информацию вот таким кодом:

var
 objXMLDoc : IXMLDOMDocument;
 Node, Part : IXMLDOMElement;
 List,ListPrinc : IXMLDOMNodeList;

begin
 objXMLDoc := CreateOLEObject("Microsoft.XMLDOM")as IXMLDOMDocument;
 objXMLDoc.async := False;
 objXMLDoc.loadXML(memo1.Text);
 Node := objXMLDoc.DocumentElement;
if Node<>nil then
Begin
  List := Node.selectNodes("/element_xml");
 memo2.Lines.Append(List.Item[0].Text);
End;
end;


соответсвенно получаю строку на выходе а не набор строк...
Как его читать сразу TStrings и переделать в TStrings после прочтения?

Подскажите...


 
Медвежонок Пятачок ©   (2009-12-25 15:35) [1]

хранить в узле CDATA


 
vegarulez ©   (2009-12-25 15:45) [2]

это как?


 
Медвежонок Пятачок ©   (2009-12-25 15:46) [3]

узел с типом CDATA.


 
Медвежонок Пятачок ©   (2009-12-25 15:46) [4]

<element_xml>
<![CDATA[
stroka
vot
etakogo
vida
]]>
</element_xml>


 
vegarulez ©   (2009-12-25 16:14) [5]

ак как его разбирать?? также .Text?

Сечас попробовал он выдаёт туже самую строку...
с квадратиками в поле TMemo м\у словами... ну т.е. как бы с переносом слов... но он был и без CDATA... как их правильно в TMemo отобразить.

Сюда копирую и всталяю  - она правильно вставляется...
stroka
vot
etakogo
vida

а там отображается с квадратиками вместо переноса каретки...


 
sniknik ©   (2009-12-25 16:21) [6]

> а там отображается с квадратиками вместо переноса каретки...
это и есть символы переноса строки...

попробуй вставлять так
memo2.Lines.Text:= List.Item[0].Text;


 
vegarulez ©   (2009-12-25 16:28) [7]

Да. так всё полуилось... но мне нужно добавить а не заменить полностью мемо... к уже существующим разобранным полям...


 
vegarulez ©   (2009-12-25 16:28) [8]

add и append -  результат один и тот же...


 
sniknik ©   (2009-12-25 16:33) [9]

> add и append -  результат один и тот же...
они добавляют строку, а она может содержать что угодно, в том числе и символы переноса.

> но мне нужно добавить
ну так разбери на строки, с помощью stringlist например, и добавь построчно.


 
vegarulez ©   (2009-12-25 16:48) [10]

Спасибо. рабит.

var
...
 temp_strlist:Tstrings;
...
begin
 temp_strlist:=Tstringlist.Create;
...
 List := Node.selectNodes("/element_xml");
 temp_strlist.Text:=List.Item[0].Text;
 memo2.Lines.AddStrings (temp_strlist);
 temp_strlist.Free;

...


 
sniknik ©   (2009-12-25 16:58) [11]

> add и append -  результат один и тот же...
сомнение взяло, проверил...
memo1.Lines.Add("stroka"#13#10"vot"#13#10"takogo"#13#10"vida");
работает.


 
vegarulez ©   (2009-12-26 14:11) [12]

Попробуй с List.Item[0].Text, как я до этого делал, с чтением xml без привлечения Tstringlist, - уверяю не сработает )


 
sniknik ©   (2009-12-26 14:21) [13]

> Попробуй с List.Item[0].Text, как я до этого делал, с чтением xml без привлечения Tstringlist, - уверяю не сработает )
т.е. ты мне предлагаешь тестовую программку написать чтобы проверить, то что я и так знаю?
уверяю тебя, У МЕНЯ, сработает.
может конечно и придется небольшие преобразования сделать(посмотреть на разделитель сначала) но в итоге сработает.

p.s. лучше уж ты посмотри разницу приведенного и того что там получаешь.


 
vegarulez ©   (2009-12-26 14:36) [14]

Так я же написал уже выше, что у меня всё заработало с привлечением tstringlist в vegarulez ©   (25.12.09 16:48) [10]. Большое спасибо за совет.

Просто странно, что вроде как перенос каретки есть при вставке напрямую List.Item[0].Text, но без разобра в tstringslist в мемо вставляется с символом квадратика ) И когда копируешь куда нить, в блокнот например, - вставляется уже с переносом, нормально разбитая по строкам ) А в самом мемо переноса нет ) А есть квадратики )


 
sniknik ©   (2009-12-26 15:04) [15]

> с привлечением tstringlist в vegarulez ©   (25.12.09 16:48) [10]. Большое спасибо за совет.
совет был глупым т.к. до проверки основывался на неверной исходной информации... (ну то что не работает добавление, только строкой).
можно проще, со stringreplace, т.к. судя по всему xml одтает текст в линуксовом стиле, с разделителями #10 (предположительно, лучше последовать предыдущему совету и посмотреть на разницу).



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.02.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
2-1261668633
alex123
2009-12-24 18:30
2010.02.28
Connect через svchost.exe


13-1124537487
jenbond
2005-08-20 15:31
2010.02.28
Передача параметра из UserControl


2-1261851917
Наталья
2009-12-26 21:25
2010.02.28
протокол UDP


2-1261763355
Pup
2009-12-25 20:49
2010.02.28
простейшие фигуры с помощью TShape


15-1261032400
Ymen
2009-12-17 09:46
2010.02.28
Орешник поломался?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский