Помогите в парсинге XML

Status
Not open for further replies.

KOJAN

Турист
Есть строка в XML файле:
Code:
<string name="callDetailsDurationFormat"><xliff:g id="minutes" example="42">%1$s</xliff:g> mins <xliff:g id="seconds" example="28">%2$s</xliff:g> secs</string>
Как прочитать содержимое именно такое:
Code:
<xliff:g id="minutes" example="42">%1$s</xliff:g> mins <xliff:g id="seconds" example="28">%2$s</xliff:g> secs
Пользуясь NativeXml у меня с помощью функции NodeList.Items.Nodes[j].ValueAsUnicodeString не получается, помогите пожалуйста
 
Last edited by a moderator:

pavels13

Турист
Вот на быструю руку:

function ReverseString(s: string): string; // переворачиваем строку
var
i: integer;
begin
Result := '';
if Trim(s) <> '' then
for i := Length(s) downto 1 do
Result := Result + s;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
s1,s2:string;
sim_l,sim_r:string[1];
begin
s1:=Edit1.Text; // исходная строка
s2:=Edit2.Text; // конечная строка
sim_l:='>'; // разделитель слева
sim_r:='<'; // разделитель справа

delete(s1,1,pos(sim_l,s1)); // удаляем подстроку слева
s1 :=ReverseString(s1); // переворачиваем строку
delete(s1,1,pos(sim_r,s1)); // удаляем подстроку справа
s1 :=ReverseString(s1); // переворачиваем строку обратно
Edit2.Text := s1; // выводим конечную строку в едит
end;
 

SeaMan75

Турист
Я использую SimpleXML - парсит на ура шустро и быстро... будет время - хочу его подпилить надфилем...
 

IPS

Турист
Используй майкрасофтовский парсер, находишь root и пошел по вложениям.
 

Keoda

Турист
Я пользуюсь TinyXML. Лёгкая и фриварная библиотека
 

Shostak.alexand

Турист
Если стоит задача получить именно текст в виде xml отличный от первого варианта, то
Nonstopich подсказал правильное решение, а если необходимо извлечь информацию из какого-то атрибута(в данном случае id и example - атрибуты), я бы порекомендовал стандартный компонент TXMLDocument.
 

sergeii

Турист
стандартный компонент TXMLDocument.

Добавлено через 41 секунду
SimpleXML всем хорош
 
Last edited by a moderator:

bssat

Турист
Да лучше парсить TPerlRegex. Если данные структурированы, все просто.
 

choo

Турист
Я тоже использую TXMLDocument.
И для чтения XML и для чтения XSD.
 
Status
Not open for further replies.
Top