|
XPath Поиск по техтовому содержанию | ☑ | ||
---|---|---|---|---|
0
assest
21.10.15
✎
11:49
|
Файл = Новый ЧтениеXML();
Файл.ОткрытьФайл(путь); ФайлDOM = Новый ПостроительDOM(); XML = ФайлDOM.Прочитать(Файл); Разыменователь = Новый РазыменовательПространствИменDOM(XML); Запрос = "//model_type_date""; Результат = XML.ВычислитьВыражениеXPath(Запрос, XML, Разыменователь, ТипРезультатаDOMXPath.УпорядоченныйИтераторУзлов).ПолучитьСледующий(); Вопрос как указать что мне нужны model_type_date, у каторых есть |
|||
1
assest
21.10.15
✎
11:49
|
Узел bm_mark_id, с текстовым содержанием "123321"
|
|||
2
assest
21.10.15
✎
11:51
|
Или есть model_type_date/bm_mark_id/#text , с текстовым содержанием или значением узла "123321"
|
|||
3
spock
21.10.15
✎
11:54
|
(2) "//model_type_date/bm_mark_id/[@text='123321']"
|
|||
4
Дык ё
21.10.15
✎
12:00
|
(1) //model_type_date[bm_mark_id/text()="123321"]
|
|||
5
spock
21.10.15
✎
12:02
|
Пошли варианты :)
Предлагаю показать кусочек самого XML |
|||
6
assest
21.10.15
✎
12:12
|
<model_type_list>
<model_type_date> <bm_mark_id>1</bm_mark_id> <bm_model_id>1</bm_model_id> <bm_crc_key>bff6d75b777e8f0656041f1a74a17c05</bm_crc_key> <bm_model_type_model>-</bm_model_type_model> <bm_motor_power>738 кВт / 1 004 л.с.</bm_motor_power> <bm_motor_engine>137.4 l (137.4 l)</bm_motor_engine> <bm_series_models>400</bm_series_models> <bm_graduation_year>06/1993 -</bm_graduation_year> <bm_cylinder>6</bm_cylinder> <bm_manufacturer_model_series>-</bm_manufacturer_model_series> <bm_type_of_vehicle>Лодочные моторы Внутри судна</bm_type_of_vehicle> <bm_body_type>-</bm_body_type> <bm_body>-</bm_body> <bm_sample_chassis>-</bm_sample_chassis> <bm_type_of_bridge>-</bm_type_of_bridge> <bm_os_configuration>-</bm_os_configuration> <bm_other_types_of_motors>-</bm_other_types_of_motors> <bm_engine_manufacturer>-</bm_engine_manufacturer> <bm_engine_type>Дизельный двигатель, Турбонагнетатель ОГ</bm_engine_type> <bm_design>-</bm_design> <bm_mixture>PF-насос</bm_mixture> <bm_onboard_voltage>0 V</bm_onboard_voltage> <bm_market_introduction>-</bm_market_introduction> <bm_country_of_origin>DK</bm_country_of_origin> </model_type_date> |
|||
7
assest
21.10.15
✎
12:15
|
(4) Ожидается")"
|
|||
8
assest
21.10.15
✎
12:15
|
(3)Ошибка при вызове метода контекста (ВычислитьВыражениеXPath)
|
|||
9
assest
21.10.15
✎
12:19
|
(4) необходимы ординарные кавычки
|
|||
10
assest
21.10.15
✎
12:19
|
//model_type_date[bm_mark_id/text()='123321']
так работает |
|||
11
spock
21.10.15
✎
12:20
|
(8) "//model_type_date/bm_mark_id[text()='123321']"
|
|||
12
spock
21.10.15
✎
12:24
|
+11 тупанул, нужны model_type_date по определенным bm_mark_id. в (10) верно тогда.
|
|||
13
assest
21.10.15
✎
12:25
|
Вроде обе строки возвращают одно и тоже (11) (11)
|
|||
14
Дык ё
21.10.15
✎
13:08
|
(9) свистишь, стандарту соответствует и в 8.3.6.2332 работает
|
|||
15
assest
21.10.15
✎
13:35
|
14) Я смотрел на 8,2
|
|||
16
Jaap Vduul
21.10.15
✎
14:07
|
Если узел model_type_date всегда принадлежит только model_type_list, то для более лучшей производительности не следует использовать селектор "//", а вместо этого указывать путь явно:
/model_type_list/model_type_date[bm_mark_id='123321'] |
|||
17
assest
21.10.15
✎
16:39
|
(16) Спасибо это было полезно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |