7

Web サイトで XQuery のチュートリアルをたくさん読んでいます。それらのほとんどすべてが、私に XQuery 構文を教えてくれます。XQuery 構文を理解したとしましょう。Web サイトに XQuery を実際に実装するにはどうすればよいでしょうか。

たとえば、book.xmlがあります。

<?xml version="1.0" encoding="iso-8859-1" ?>
<books>
<book>
   <title>Doraemon</title>
   <authorid>1</authorid>
</book>
<book>
   <title>Ultraman</title>
   <authorid>2</authorid>
</book>
</books>

それから、私はauthor.xmlを持っています

<?xml version="1.0" encoding="iso-8859-1" ?>
<authors>
<author id="1">Mr A</author>
<author id="2">Mr B</author>
</authors>

次のようなHTMLを生成したい:

<table>
    <tr>  <td>Title</td>     <td>Author</td> </tr>
    <tr>  <td>Doraemon</td>  <td>Mr A</td>   </tr>
    <tr>  <td>Ultraman</td>  <td>Mr B</td>   </tr>
</table>

いくつか例を示してください。または私が参照できる任意のWebサイト。どうもありがとう。

4

7 に答える 7

6
(: file: titles.xqy :)
<table>
<tr><th>title</th><th>author</th></tr>
{
let $books-doc := doc("books.xml")
let $authors-doc := doc("authors.xml")
for $b in $books-doc//book,
    $a in $authors-doc//author
where $a/@id = $b/authorid
return 
<tr>
    <td>{$b/title/text()}</td>
    <td>{$a/text()}</td>
</tr>
}

于 2008-09-18T03:19:17.543 に答える
3

XQueryは、大規模なデータリポジトリからデータの特定の部分を取得できるという点でSQLに似ています。SQLはリレーショナルデータベース(MS SQL Server、Oracle、Sybase、MySQL、PostreSQL、SQLiteなど)に使用され、XQueryはXMLデータベース(MARKLogic、Sedena、Qexo、Qizx / dbなど)に使用されます。

MARKLogicは、XDBサーバーとHTTPサーバーを提供します。一般的なWebサーバーを使用してXDBを介してMARKLogicに接続することも、HTTPサーバーを使用してXQueryとHTMLを直接混合することもできます。

MARKLogicの開発者サーバー(100MBのドキュメントを許可)をダウンロードして試してみることをお勧めします。

于 2008-09-20T22:22:20.907 に答える
3

xml を html に処理するには、サーバーまたはライブラリが必要です。私の意見では、少し複雑なものを扱う場合、XQuery はこのような点で XSLT よりもはるかに優れています。それは、はるかにクリーンな言語でもあります。この Web サイトには、XQuery プロセッサの優れたリストがあります

于 2008-09-27T19:38:48.967 に答える
2

正直に言うと、XQuery をまったく使用する必要がないかもしれません。

やや複雑な XML 文書を XML から HTML に変換する必要がある場合は、XSL を使用することをお勧めします。個人的には、XQuery よりも XSL の方が習得しやすいと感じました。XSL は以前から存在しているため、オンラインで利用できる例やチュートリアルも多数あります。

現在、XQuery を使用しているのは、ライセンスを取得した特殊な XML ソフトウェアの一部として XQuery が必要だからです。XQuery は大規模なリポジトリから XML の断片を選択するための優れたツールですが、私たちは依然として XSL を使用してドキュメントを変換しています。

于 2008-09-20T15:35:50.820 に答える
1

Webサイト開発設定でXQueryを使用するための多くのシナリオがあります。

ページを動的に生成する:

サーバー側のコードから呼び出すことができるAPIを提供するライブラリが必要になります。これは、XMLデータが従来のデータベースやファイルシステムなどに保存されている場合に当てはまります。例:ZorbaはPHP用のそのようなAPIを提供し、Java用のXQueryAPIなどがあります。

XMLデータがXQueryをサポートするXMLデータベースサーバーに保存されている場合は、サーバーにXQueryクエリを発行して、結果を取得します。このカテゴリには多くのオープンソースおよび商用製品があります。BaseXはオープンソースの例です。

ページを静的に生成する:

XMLデータから静的にHTMLページの一部を生成したい場合があります。この場合、コマンドラインXQueryユーティリティを実行できます。たとえば、Zorba、Saxon、BaseXなどの多くのツールがこのようなCLIツールを提供します。または、APIを使用して独自のスクリプトから実行することもできます。

次に、ビルドシステムでルールを定義して、XMLデータが変更されるたびにこれらのコマンドまたはスクリプトを実行します。

静的アプローチと動的アプローチの両方で、XQueryがテンプレートシステムと連動するように環境を設定できます。たとえば、XQueryによってHTMLページ全体を生成する代わりに、XMLに基づいてHTMLセグメントを生成し、それらをプラグインすることができます。テンプレート。

変換以外の用途:

上記のケースはXMLをHTMLに変換することに関するものですが、XQueryはWeb開発プロセスで他の方法で使用できます。私が役立つと思う1つの方法は、XMLドキュメントを変更することです。長いXMLドキュメントがあり、フィールド値を変更したり、フィールドまたは属性を追加したりする場合は、XQueryUpdateFacility拡張機能を使用してそれを実現できます。

お役に立てれば。明確にするためだけだと思う​​ので、あなたの例については説明しませんでした。

于 2011-09-02T15:18:35.143 に答える
1

以下のリンクを参照してください:

http://beyondrelational.com/blogs/jacob/archive/2009/08/19/xquery-lab-47-generated-html-table-from-xml-data.aspx

于 2011-08-21T09:47:42.540 に答える
0
<table>
<tr><td>Title<td><td>Author<td></tr>
{
    let $authordoc := fn:doc("author.xml")
    for $book in fn:doc("book.xml")/books/book
    return
        <tr>
                <td>{ $book/title }</td>
                <td>{ $authordoc/authors/author/[@id eq $book/authorid] }</td>
        </tr>
}
</table>

ps:テスト/実行していませんが、これは1つのソリューションがどのように見えるかです

于 2008-09-17T13:10:37.210 に答える