我試圖從鏈接數字列表中生成html表格行,查詢在線xml文件中是否存在相應的版本號,以及是否添加額外的兄弟元素信息。xquery - 加入條件
這是網上的xml文件:http://www.sec.gov/about/docket/sec-docket-2013.xml
的imlit.xml列表文件看起來像:
<litigation>
[...]
<h2>Affiliated Transactions/Joint Transactions</h2>
<ul>
<li><a href="/litigation/admin/2014/ia-3762.pdf">IA-3762</a></li>
<li><a href="/litigation/admin/2013/ia-3654.pdf">IA-3654</a></li>
<li><a href="/litigation/admin/2013/34-69425.pdf">34-69425</a></li>
</ul>
[...]
</ligitation>
我得到這個在Basex工作:
for $x in doc("C:\bob\dev\xquery\imlit.xml")/litigation/ul/li,
$y in
doc("http://www.sec.gov/about/docket/sec-docket-2013.xml")/secDocket/releaseItem[releaseNumber
= $x/a]
return (<tr> <td> {$x/a} </td> <td> {data($y/date)} </td>
<td> {data($y/subjects/subject)} </td> </tr>, '
')
和我:
[...]
<tr>
<td>
<a href="/litigation/admin/2013/ia-3740.pdf" target="_blank">IA-3740</a>
</td>
<td>2013-12-17</td>
<td>Dappah, Frank</td>
</tr>
<tr>
<td>
<a href="/litigation/admin/2013/ia-3729.pdf" target="_blank">IA-3729</a>
</td>
<td>2013-12-02</td>
<td>Dushek, Charles J. Dushek, Charles S.</td>
</tr>
[...]
但是,如果沒有匹配並且還包含h2,我想插入「佔位符」表格行。所以我想獲得如下內容。在第一TR「佔位」行,「34-71069」從imlit.xml不匹配對仲案,2013.xml
<h2>Compliance Programs</h2>
<tr>
<td>
<a href="/litigation/admin/2013/34-71069.pdf" target="_blank">34-71069</a>
</td>
<td>insert date</td>
<td>insert respondent</td>
</tr>
<tr>
<td>
<a href="/litigation/admin/2013/34-71069.pdf" target="_blank">34-71069</a>
</td>
<td>2013-12-12</td>
<td>Wayne, Mark M.</td>
</tr>
我嘗試以下,但它不工作:
for $x in doc("c:\bob\dev\xquery\imlit.xml")/litigation,
$y in
doc("http://www.sec.gov/about/docket/sec-docket-2013.xml")/secDocket/releaseItem
return
if ($x/h2)
then $x/h2
else if ($x/ul/li/a = $y/releaseNumber)
then <tr> <td> {$x/ul/li/a} </td> <td> {data($y/date)} </td>
<td> {data($y/subjects/subject)} </td> </tr>
else <tr> <td> {$x/ul/li/a} </td> <td> insert date </td>
<td> insert respondent </td> </tr>
我似乎得到$ x/h2的無限遞歸。我不瞭解條件語句應如何工作以及如何處理查詢。
這種運作良好,當有在網上案卷文件相匹配,但是當沒有比賽時,空單元格會有意想不到的語法:
我認爲這是因爲默認序列化格式是XML。在你的情況下,你可能想使用HTML序列化格式,它會以HTML方式輸出標籤。如何做到這一點取決於引擎,儘管XQuery提供了一種標準的方法來在引擎中實現它,引擎可能會或可能不會實現。 –