Тема: Парсинг XML
Показать сообщение отдельно
  #2  
Старый 07.04.2019, 18:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вот через стандатрный TXMLDocument:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  doc : IXmlDocument;
  rootNode : IXMLNode;
  I,J : Integer;
begin
  Memo1.Lines.Clear;
  doc := TXMLDocument.Create(Nil);
  Try
    doc.LoadFromFile('c:\work\xml.xml');
    doc.Active := True;
    rootNode := doc.ChildNodes.FindNode('mime-types');
    for I := 0 To rootNode.ChildNodes.Count-1 Do
      If rootNode.ChildNodes[i].NodeName = 'mime-type' Then
        Begin
          Memo1.Lines.Add(rootNode.ChildNodes[i].Attributes['name']);
          For J := 0 To rootNode.ChildNodes[i].ChildNodes.Count-1 Do
            If rootNode.ChildNodes[i].ChildNodes[J].NodeName = 'ext' Then
              Memo1.Lines.Add('  ' + rootNode.ChildNodes[i].ChildNodes[J].NodeValue);
        End;

  Finally
    doc := Nil;
  End;
end;

ЗЫ. Твой xml не правильный.
1. Он не закрыт (ну тут подозреваю, что ты просто скопировал только кусок.
2. Символ '<' недопустим внутри значения. Заменить на '&lt;'
3. Ну и тире убрать перед тегами mime-type (как я понял, это ты просто отметил типа корневые).
Ответить с цитированием