2015-05-15 4 views
0

В приведенном ниже коде $ y возвращает одно значение атрибута, которое выглядит как «OK HL DJ FJJ FJ» и т. Д. $ L возвращает значения атрибутов, которые выглядят как «ОК» «HL». Идея состоит в том, что я хочу видеть, содержится ли $ l в пределах $ y, и если да, то распечатайте ее. Так что действительно третья строка кода прошлого/страны /, где я запутался. Я не уверен, как включить функцию, которая была там, чтобы делать то, что я описал.Как проверить, является ли одна строка подстрокой другой и распечатать ее, если true (XQuery/XML)

let $g := doc("cars.xml")/cars/honda[@id="hondaCivic"] 
    let $y := ($g/@type) 
    for $l in doc("cars.xml")/cars/country/[@car_code]???? 
    return $y 
+1

Показать свой XML, или вы предпочли бы, чтобы люди догадывались? – Tomalak

ответ

3

Следующая разметить кода строки через пробел, и выбрать всю страну с кодом в результирующей последовательности:

let $cars := doc('cars.xml')/cars 
let $type := $cars/honda[@id eq 'hondaCivic']/@type 
let $codes := tokenize($type, '\s+') 
return 
    $cars/country[@car_code = $codes] 

Обычно это хорошая идея, чтобы использовать структуру XML для представления структурированных информации, например используя повторяемый элемент type для представления каждого из кода независимо вместо строки, содержащей список значений.

 Смежные вопросы

  • Нет связанных вопросов^_^