Форум: "Начинающим";
Текущий архив: 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.014 c