:: Visual Foxpro, Foxpro for DOS
Member SelectSingleNode does not evaluate to an object
tata
Автор

Сообщений: 3458
Откуда: Казань
Дата регистрации: 23.10.2005
Всем доброго дня!
Давно уже не могу решить проблему: если в XML-файле встречаются два блока с тэгами Фамилия,Имя, Отчество.
Например, так :
<ПОРУЧЕНИЕ_НА_ДОСТАВКУ_ПЕНСИЙ>
<НомерВпачке>86</НомерВпачке>
<СистемныйНомерМассива>010010000201402145</СистемныйНомерМассива>
<НомерВмассиве>2222168</НомерВмассиве>
<НомерВыплатногоДела>088431</НомерВыплатногоДела>
<ФИО>
<Фамилия>ИВАНОВ</Фамилия>
<Имя>ГЕННАДИЙ</Имя>
<Отчество>ВИТАЛЬЕВИЧ</Отчество>
</ФИО>
<ФИОПредставителяПоДоверенности>
<Фамилия>КУЗНЕЦОВА</Фамилия>
<Имя>ЕЛЕНА</Имя>
<Отчество>НИКОЛАЕВНА</Отчество>
</ФИОПредставителяПоДоверенности>
</ПОРУЧЕНИЕ_НА_ДОСТАВКУ_ПЕНСИЙ>
Или так:
<ПОРУЧЕНИЕ_НА_ДОСТАВКУ_ПОСОБИЯ_НА_ПОГРЕБЕНИЕ>
<НомерВпачке>2</НомерВпачке>
<СистемныйНомерМассива>010016000201801011</СистемныйНомерМассива>
<НомерВмассиве>1</НомерВмассиве>
<НомерВыплатногоДела>099854</НомерВыплатногоДела>
<НомерОПС>425000</НомерОПС>
<ДатаВыдачиПоручения>10.01.2018</ДатаВыдачиПоручения>
<ФИОполучателя>
<Фамилия>ПЕТРОВА</Фамилия>
<Имя>НАТАЛЬЯ</Имя>
<Отчество>НИКОЛАЕВНА</Отчество>
</ФИОполучателя>
<СуммаКдоставке>5701.31</СуммаКдоставке>
<ФИОумершего>
<Фамилия>СИДОРОВА</Фамилия>
<Имя>ЕВДОКИЯ</Имя>
<Отчество>НИКОЛАЕВНА</Отчество>
</ФИОумершего>
<СтраховойНомер>002-461-436 97</СтраховойНомер>
<ДатаСмерти>04.02.2018</ДатаСмерти>
</ПОРУЧЕНИЕ_НА_ДОСТАВКУ_ПОСОБИЯ_НА_ПОГРЕБЕНИЕ>
Не получается распарсить второй блок. Появляется сообщение Member SelectSingleNode does not evaluate to an object.
Раньше как-то обходились без данных второго блока, а теперь кровь из носу - надо оба.
Сижу с этим все праздники - не получается. Знаний недостаточно.
Если кто сможет помочь, буду рада. Поскольку вопрос встанет в полный рост уже после праздников.
Тут примерчик - кусочек из программы и XML-файла.
[attachment 29112 pogrstat.zip]
Ratings: 0 negative/0 positive
Re: Member SelectSingleNode does not evaluate to an object
AndyNigmatec

Сообщений: 1552
Откуда: Волгоград
Дата регистрации: 28.06.2015
Я не спец по xml ... но из того что было на форуме - вот сваял ваш примерчик (во вложении) - нормально вроде парсится ... саму xml-ку там же во вложении сделал по вашим данным ... у вас исходная может и отличаться



Исправлено 1 раз(а). Последнее : AndyNigmatec, 11.03.18 11:31
Ratings: 0 negative/0 positive
Re: Member SelectSingleNode does not evaluate to an object
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
А если строку для oXml.documentElement.selectNodes такую передать?

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
var objNodeList;
xmlDoc.async = false;
xmlDoc.load("hello.xsl");
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
WScript.Echo("You have error " + myErr.reason);
} else {
xmlDoc.setProperty("SelectionNamespaces", "xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");
xmlDoc.setProperty("SelectionLanguage", "XPath");
objNodeList = xmlDoc.documentElement.selectNodes("//xsl:template");
WScript.Echo(objNodeList.length);
}

msdn.microsoft.com


P.S. Без XSLT-схемы пока не получается загрузить. Создам схему - там посмотрим.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Member SelectSingleNode does not evaluate to an object
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
AndyNigmatec
Я не спец по xml ... но из того что было на форуме - вот сваял ваш примерчик (во вложении) - нормально вроде парсится ... саму xml-ку там же во вложении сделал по вашим данным ... у вас исходная может и отличаться

Да, код рабочий.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Member SelectSingleNode does not evaluate to an object
tata
Автор

Сообщений: 3458
Откуда: Казань
Дата регистрации: 23.10.2005
[attachment 29119 ]

sphinx

P.S. Без XSLT-схемы пока не получается загрузить. Создам схему - там посмотрим.
Саша, схема во вложении (выше в начальном сообщении тоже есть во вложении).



Исправлено 2 раз(а). Последнее : tata, 11.03.18 15:37
Ratings: 0 negative/0 positive
Re: Member SelectSingleNode does not evaluate to an object
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
1) Схемы во вложении нет.
2) Очевидно что selectSingleNode ломается если в документе под указанный XPath критерий попадает не ОДИН узел а несколько. Что делать - указывать КОНКРЕТНО какой из узлов какой ветки нужен, чтобы XPath мог найти именно один узел. Или использовать selectNodes и циклом проходить по полученной коллекции, разбирая что к чему относится (скажем, выходя на parent узлы).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Member SelectSingleNode does not evaluate to an object
tata
Автор

Сообщений: 3458
Откуда: Казань
Дата регистрации: 23.10.2005
[attachment 29120 ]



Исправлено 1 раз(а). Последнее : tata, 11.03.18 15:38
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 38 anelsasha  (Гостей: 37)

© 2000-2024 Fox Club 
Яндекс.Метрика