Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.12.2011, 02:28
VinSS VinSS вне форума
Прохожий
 
Регистрация: 30.12.2011
Сообщения: 2
Репутация: 10
По умолчанию Проблема с чтением xml

Не сочтите кощунством, пиши на самом деле на Lazarus'е, уже решение где мог спрашивал.
Код следующий:
Код:
procedure TForm1.MenuItem4Click(Sender: TObject);
var
s:string;
PassNode: TDOMNode;
Doc: TXMLDocument;
begin
ReadXMLFile(Doc, '\\server\types\type_1\all_files\file_00529759\file529759.xml');
PassNode := Doc.DocumentElement.FindNode('number');
s:=UTF8Encode(PassNode.TextContent);
Doc.Free;
end;
На s:=UTF8Encode(PassNode.TextContent) все время ругается, определил, что PassNode=null всегда, хотя блок 'number' точно есть! Проблема видимо в том, что хмлка в кодировке unicode, а чтобы нормально все работало надо чтобы была UTF8. Посоветуйте, что делать, пожалуйста. (можно хотя бы привести пример с UnicodeToUtf8, по описанию не понял как работает

Сам смог найти только тупейший метод:
1) скопировать хмлку;
2) сохранить в кодировке UTF8;
3) прочитать как текст.
Второй пункт не знаю как автоматизировать, с остальным уже разобрался.
В принципе "тупейший метод" тоже подходит, делать придется всего раз 40 в день и хмлка сама по себе не большая, строк в 200, сетка даже не заметит, также как и сервак с котого я буду этот файл забирать.

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

1. проверить, что в xml правильный заголовок с правильной кодировкой.
2. попробовать так: PassNode := Doc.DocumentElement.FindNode(WideString('number')) ;

Если ничего не поможет, выкладывай xml, будет время - гляну.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
VinSS (30.12.2011)
  #3  
Старый 30.12.2011, 05:47
VinSS VinSS вне форума
Прохожий
 
Регистрация: 30.12.2011
Сообщения: 2
Репутация: 10
По умолчанию

Не получилось
Обрезал xml по максимому, в нем просто несколько страниц и кучи данных на них.
<?xml version="1.0" encoding="unicode"?>
<batch version="1.0" hasBlockCoordinates="true">
<page pageNumber="1" pageTemplate="v1-2">
<block blockName="SURNAME" l="110" t="521" r="1193" b="607">ИВАНОВ</block>
<block blockName="NAME" l="110" t="609" r="1195" b="695">ИВАН</block>
<block blockName="PTRNMIC_NAME" l="111" t="696" r="1196" b="782">ИВАНОВИЧ</block>
<block blockName="DOB" l="282" t="793" r="865" b="873">01.01.1950</block>
<block blockName="CITIZENSHIP" l="0" t="0" r="0" b="0">RU</block>
</page>
</batch>

Спасибо за помощь заранее
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter