我有一個遵循此DTD結構的XML文件。XQuery循環條件
<!DOCTYPE report [
<!ELEMENT report (title,section+)>
<!ELEMENT section (title,body?,section*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT body (para+)>
<!ELEMENT para(#PCDATA)>
<!ATTLIST book version CDATA #REQUIRED>
<!ATTLIST section number ID CDATA #REQUIRED>
]>
我想用XQuery查詢以下兩件事情。
1.獲取至少出現兩次的所有標題(兩個標題相同的標題)。
for $x in /report/section/
for $y in /report/section/
where $x/@title = $y/@title
return $x/@title
2.獲取正文或5個嵌套節中至少有10個段落的所有節的編號和標題。
for $x in /report/section/
where $x/para >= 10 or count(/section) > 10
return <large>$x/number $x/title</large>
但我的查詢似乎並不正確。我是XQuery或XPath的初學者,有人能告訴我如何解決我的疑問嗎?
編輯:示例XML
<?xml version="1.0" encoding="UTF-8"?>
<report version = '1'>
<title>Harry Potter</title>
<section number = '1'>
<title>sec1</title>
<body>
<para>1</para>
<para>2</para>
<para>3</para>
<para>4</para>
<para>5</para>
<para>6</para>
<para>7</para>
<para>8</para>
<para>9</para>
<para>10</para>
<para>11</para>
</body>
</section>
<section number = '2'>
<title>sec2</title>
<body><para>test</para></body>
<section number = '2.1'>
<title>sec21</title>
<body>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
<para>test</para>
</body>
</section>
<section number = '2.2'>
<title>sec21</title>
<body><para>test</para></body>
</section>
<section number = '2.3'>
<title>sec23</title>
<body><para>test</para></body>
</section>
<section number = '2.4'>
<title>sec24</title>
<body><para>test</para></body>
</section>
<section number = '2.5'>
<title>sec25</title>
<body><para>test</para></body>
</section>
<section number = '2.6'>
<title>sec1</title>
<body><para>test</para></body>
</section>
</section>
</report>
郵政樣本XML和相應的預期輸出請 – har07
對於示例XML,部分1和2.6具有相同的標題,和2.1和2.2節具有相同的標題。對於第二個問題,1和2.1在正文中有超過10個段落,並且2個具有超過5個嵌套段。 –