powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Не работает if в xpath
3 сообщений из 3, страница 1 из 1
Не работает if в xpath
    #38892372
Rexx23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Пытаюсь написать xpath условие 'выбор SimpleValue в зависимости от PropertyName' для xml:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<input xmlns=" http://www.lmsoftmdm.ru" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">
<data>
<Class>Справочник.МатериальноТехническиеРесурсы</Class>
<Values>
<Value>
<PropertyName>Код</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">000000004</SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Наименование</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">Форд</SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>НаименованиеПолное</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">Форд Фокус</SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>ЕдиницаИзмерения</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Комментарий</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Статус</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">0</SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Эталон</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Код3</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Стандарты</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>СтатусЗаписи</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Классификатор 1 длинное наименование очень длинное</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">Кл1_1</SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Классификатор 2авы авы </PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Классификатор 3</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">Гр</SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>Классификатор 4 переимено</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>йцукен</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
<Values>
<Value>
<PropertyName>фывап</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string"></SimpleValue>
</Value>
</Value>
</Values>
</data>
</input>
</soap:Body>
</soap:Envelope>
Самое условие:
if (/soap:Envelope/soap:Body/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='input']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='data']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Values']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Value']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='PropertyName']/text()='Наименование') then
/soap:Envelope/soap:Body[1]/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='input'][1]/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='data'][1]/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Values']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Value']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Value']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='SimpleValue']/text() else 0
По оно выдает почему то все значения SimpleValue
Подскажите,в чем может быть дело.
...
Рейтинг: 0 / 0
Не работает if в xpath
    #38892412
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неохота разгребать эту неформатированную кашу.
...
Рейтинг: 0 / 0
Не работает if в xpath
    #38892452
Rexx23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привожу более читабельный вариант.
Есть xml:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<input xmlns=" http://www.lmsoftmdm.ru" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">
<data>
<Class>Справочник.МатериальноТехническиеРесурсы</Class>
<Values>
<Value>
<PropertyName>Код</PropertyName>
<Value>
<SimpleValue xsi:type="xs:string">000000004</SimpleValue>
</Value>
</Value>
</Values>
<Values>
</data>
</input>
</soap:Body>
</soap:Envelope>

Необходимо в нем, выбрать значение <SimpleValue...в зависимости от PropertyName.
Написал условие:
if (/soap:Envelope/soap:Body/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='input']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='data']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Values']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Value']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='PropertyName']/text()='Наименование') then
/soap:Envelope/soap:Body[1]/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='input'][1]/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='data'][1]/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Values']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Value']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='Value']/*[namespace-uri()='http://www.lmsoftmdm.ru' and local-name()='SimpleValue']/text() else 0

Но оно почему то, не отрабатывает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Не работает if в xpath
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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