Прежде всего, я совершенно новый в Xquery, и мне жаль, что моя проблема очень глупа: /.
Это только часть моего XML:
<books>
<book id="b1">
<title>Set theory and the continuum problem</title>
<category>Mathematics</category>
<location>
<area>hall1</area>
<case>1</case>
<shelf>2</shelf>
</location>
<description>A lucid, elegant, and complete survey of set theory.</description>
<history>
<borrowed by="m4"/>
<borrowed by="m2" until="2018-04-05"/>
</history>
</book>
<book id="b2">
<title>Computational Complexity</title>
<isbn>978-0201-530-827</isbn>
<category>Computer Science</category>
<location>
<area>hall1</area>
<case>3</case>
<shelf>3</shelf>
</location>
<description>.</description>
</book>
<book id="b3">
<title>To mock a mockingbird</title>
<isbn>1-292-09761-2</isbn>
<category>Logic</category>
<category>Mathematics</category>
<location>
<area>hall1</area>
<case>1</case>
<shelf>3</shelf>
</location>
<description>.</description>
</book>
</books>
<libraryArea floor="1" name="hall1">
<bookcases>
<woodenCase id="3" shelves="5"/>
<woodenCase id="2" shelves="5"/>
<steelCase id="1" shelves="5"/>
</bookcases>
</libraryArea>
<libraryArea name="hall2">
<bookcases>
<lockedCase id="1" shelves="9"/>
<steelCase id="4" shelves="3"/>
<lockedCase id="3" shelves="2"/>
<steelCase id="2" shelves="4"/>
</bookcases>
</libraryArea>
<libraryArea name="hall3">
<bookcases>
<woodenCase id="2" shelves="3"/>
<steelCase id="1" shelves="8"/>
</bookcases>
</libraryArea>
<libraryArea name="archive">
<bookcases>
<lockedCase id="1" shelves="1"/>
</bookcases>
</libraryArea>
</library>
Я хочу перечислить определенные названия книг в их собственных тегах ''
Примерно так:
<specialSteelCases>
<area name="hall1">
<steelCase id="1">
<bookCount>2</bookCount>
<book>Set theory and the continuum problem</book>
<book>To mock a mockingbird</book>
<shelves>5</shelves>
</steelCase>
</area>
</specialSteelCases>
Но я понимаю, все названия книг в одном теге:
Теория множеств и проблема континуума. Чтобы издеваться над пересмешником
Есть ли способ, которым я могу разделить их, чтобы у каждого названия книги были свои
Это мой Xquery:
<specialSteelCases>
{
for $a in //libraryArea
where $a/bookcases[count(woodenCase) > 1 ]
order by $a/@id
return
<area name="{$a/@name}">
{
for $s in $a//bookcases/steelCase
let $bbNew := (//books/book[location/case=$s/@id][location/area=$a/@name])
return
<steelCase id="{$s/@id}">
<bookCount>***code***</bookCount>
<book>{$bbNew/title/text()}</book>
<shelves>***code**</shelves>
</steelCase>
}
</area>
}
</specialSteelCases>