powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / выборка из XML файла с кириллицей
10 сообщений из 10, страница 1 из 1
выборка из XML файла с кириллицей
    #39506917
udg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
udg
Гость
Как верно сделать выборку веток из XML файла с русскими буквами в наименовании веток?
Пытаюсь следующим кодом выходит ошибка с неверным символом в строке "ПФЛ".
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Set xmlParser = CreateObject("Msxml2.DOMDocument.6.0")
xmlParser.async = False
xmlParser.load SourceFolder & "\" & objFile.Name
'Выводим содержимое XML-документа
WScript.Echo xmlParser.xml
Set colNodes = xmlParser.getElementsByTagName("ПФЛ")
Set xmlParser = Nothing


XML сожержимое
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>
<Файл ВерсФорм="3.00">
<ЗАПНООСТАТ ВидЗапр="4" ДатаПоСост="2017-06-25" ДатаЗапр="2017-08-01" КодОснов="1011" ТипЗапр="4" НомЗапр="23\77-Т">
<СвНО КодНО="1655" />
<СвБанк НомФил="0"/>
<СвПл>
<ПлЮЛ КПП="165001001"/>
</СвПл>
<ПоВсем>1</ПоВсем>
</ЗАПНООСТАТ>
</Файл>
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39506920
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
udgПытаюсь следующим кодом выходит ошибка с неверным символом в строке "ПФЛ".У меня все работает. Правда, возвращает 0 узлов, но ошибок нет никаких
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39506942
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кодировка точно UTF-8? Не win-1251? (и не KOI8R, не к ночи будь помянут)? У MSXML очень плохая дружба с нац. символами в неюникодных кодировках.
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39506946
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныА кодировка точно UTF-8?Была такая же идея. Проверил. Ошибок код все равно не возвращает
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39506950
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныУ MSXML очень плохая дружба с нац. символами в неюникодных кодировках.Первый раз слышу. Если в прологе кодировка указана правильно, то никаких проблем не встречал
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39506960
udg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
udg
Гость
Нашел причину оказывается ломался код с русскими символами в VBS при исполнении.
После смены кодировки VBS была UTF-8, поменял на ANSI и все стало работать.
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39507255
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Первый раз слышу. Если в прологе кодировка указана правильно, то никаких проблем не встречал
Видимо, в в тех случаях, когда я натыкался на проблемы с неюникодными кодировками, в прологе кодировка не была указана совсем. Если указана - да, всё в порядке, по крайней мере, в MSXML 6.0.
Однако в данном случае, если кодировка файла вин-1251 (а в прологе указано UTF-8), то таки не загрузится - см. аттач, при запуске батника, вызывающего скрипт загрузки xml, выдается

Код: plaintext
1.
Can't load D:\Trash\1\1.xml: В текстовом комментарии обнаружен недопустимый знак.
D:\Trash\1\2.xml loaded

файлы 1.xml и 2.xml из аттача отличаются только кодировкой - первый в win-1251, второй в UTF-8. Содержимое - как в стартовом постинге.

Скрипт загрузки:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var xmlFile = new ActiveXObject("Scripting.FileSystemObject").BuildPath(
  new ActiveXObject("WScript.Shell").CurrentDirectory, WScript.arguments(0)
);
var dom = new ActiveXObject("MSXML2.DOMDocument.6.0");
dom.async= false;
dom.validateOnParse = false;
dom.load(xmlFile);
if (dom.parseError.errorCode!=0) 
{
  WScript.Echo("Can't load "+xmlFile+": " + dom.parseError.reason);
  WScript.Quit(-1);
}
WScript.Echo(xmlFile+" loaded");
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39507532
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловныв прологе кодировка не была указана совсем.Если в прологе кодировка не указана, то подразумевается UTF-8 или UTF-16
Сон Веры Павловныкодировка файла вин-1251 (а в прологе указано UTF-8), то таки не загрузитсяИ не должен. Более того - должна генерироваться ошибка

Детали в RFC

Сон Веры ПавловныСкрипт загрузки:С добавленным контролем ошибок. Без строчки
Сон Веры Павловны
Код: javascript
1.
if (dom.parseError.errorCode!=0) 

ошибок никаких не будет.

Кстати, лучше делать так
Код: javascript
1.
if (!dom.load(xmlFile))
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39507586
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_С добавленным контролем ошибок. Без строчки
Сон Веры Павловны
Код: javascript
1.
if (dom.parseError.errorCode!=0) 

ошибок никаких не будет.
Так без контроля ошибок не будет никаких ошибок, даже если грузить не well-formed xml. Даже если грузить просто пустой файл.
...
Рейтинг: 0 / 0
выборка из XML файла с кириллицей
    #39507592
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныТак без контроля ошибок не будет никаких ошибокНе будет. За что, безусловно, нужно бить по рукам. Но у ТС изначально контроля и не было
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / выборка из XML файла с кириллицей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]