簡體   English   中英

在xQuery中按兩個元素排序

[英]Order by Two Elements in xQuery

我是xQuery的新手,必須編寫查詢才能執行以下操作;

顯示按年份排序的書籍和文章。

我嘗試了以下方法;

for $b in doc("myDB.xml")/myDB
order by $b/book/year, $b/article/year
return $b/book, $b/article

要么

for $b in doc("myDB.xml")/myDB
order by $b//year
return $b/book, $b/article

而且什么也沒排序。

XML是;

<myDB>
    <book>
        <title>ebXML : Concepts and Application</title>
        <author>
            <last_name>Gibb</last_name>
            <first_name>Brian</first_name>
        </author>
        <year>2003</year>
        <publisher>Wiley</publisher>
    </book>

    <article>
        <title>test title</title>
        <author>
            <last_name>Gibb</last_name>
            <first_name>Brian</first_name>
        </author>
        <year>2003</year>
        <publisher>test Wiley</publisher>
    </article>

    <book>
        <title>XML: Visual QuickStart Guide</title>
        <author>
            <last_name>Goldberg</last_name>
            <first_name>Kevin</first_name>
        </author>
        <author>
            <last_name>Doe</last_name>
            <first_name>John</first_name>
        </author>

        <year>2008</year>
        <publisher>Peachpit Press</publisher>
    </book>
    <book>
        <title>Beginning XML</title>
        <author>
            <last_name>Hunter</last_name>
            <first_name>David</first_name>
        </author>
        <year>2007</year>
        <publisher>Wrox</publisher>
    </book>
    <book>
        <title>Learning XML </title>
        <author>
            <last_name>Ray</last_name>
            <first_name>Erik</first_name>
        </author>
        <author>
            <last_name>Smith</last_name>
            <first_name>David</first_name>
        </author>
        <year>2003</year>
        <publisher>O'Reilly</publisher>
    </book>
    <book>
        <title>Professional XML</title>
        <author>
            <last_name>Evjen</last_name>
            <first_name>Bill</first_name>
        </author>
        <year>2007</year>
        <publisher>Wrox</publisher>
    </book>
    <article>
        <title>FileNet Integrates a New XML Editor for Non-Techies</title>
        <author>
            <last_name>Roe</last_name>
            <first_name>David</first_name>
        </author>
        <journal>CMS Wire</journal>
        <year>2009</year>
    </article>
    <article>
        <title>The Groundbreaking Potential of Codeless Ajax</title>
        <author>
            <last_name>Dusoe</last_name>
            <first_name>Jim</first_name>
        </author>
        <journal>Tech News World</journal>
        <year>2009</year>
        <pages>4</pages>
    </article>
    <article>
        <title>Windows and .NET Watch: Recognizing DSL opportunities</title>
        <author>
            <last_name>O'Brien</last_name>
            <first_name>Larry</first_name>
        </author>
        <journal>Software Development Times</journal>
        <year>2009</year>
    </article>
    <article>
        <title>An embedded XML Database: Oracle Berkeley DB XML</title>
        <author>
            <last_name>Gibb</last_name>
            <first_name>Brian</first_name>
        </author>
        <journal>The Register</journal>
        <year>2003</year>
        <pages>8</pages>
    </article>
    <article>
        <title>Open Source PostgreSQL 8.3 Better Suited For Web Applications </title>
        <author>
            <last_name>Babcock</last_name>
            <first_name>Charles</first_name>
        </author>
        <journal>Information Week</journal>
        <year>2008</year>
        <pages>1</pages>
    </article>
</myDB>

輸出是整個xml本身,然后是原始順序的books和article元素。

我真的需要一個FOR嗎? 有人可以幫忙嗎?

檢查一下:

let $doc := doc("Your.xml)/myDB
for $eachBook in $doc/child::*
order by $eachBook/year
return $eachBook

輸出:

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <title>ebXML : Concepts and Application</title>
    <author>
      <last_name>Gibb</last_name>
      <first_name>Brian</first_name>
    </author>
    <year>2003</year>
    <publisher>Wiley</publisher>
  </book>
<article>
    <title>test title</title>
    <author>
      <last_name>Gibb</last_name>
      <first_name>Brian</first_name>
    </author>
    <year>2003</year>
    <publisher>test Wiley</publisher>
  </article>
<book>
    <title>Learning XML </title>
    <author>
      <last_name>Ray</last_name>
      <first_name>Erik</first_name>
    </author>
    <author>
      <last_name>Smith</last_name>
      <first_name>David</first_name>
    </author>
    <year>2003</year>
    <publisher>O'Reilly</publisher>
  </book>
<article>
    <title>An embedded XML Database: Oracle Berkeley DB XML</title>
    <author>
      <last_name>Gibb</last_name>
      <first_name>Brian</first_name>
    </author>
    <journal>The Register</journal>
    <year>2003</year>
    <pages>8</pages>
  </article>
<book>
    <title>Beginning XML</title>
    <author>
      <last_name>Hunter</last_name>
      <first_name>David</first_name>
    </author>
    <year>2007</year>
    <publisher>Wrox</publisher>
  </book>
<book>
    <title>Professional XML</title>
    <author>
      <last_name>Evjen</last_name>
      <first_name>Bill</first_name>
    </author>
    <year>2007</year>
    <publisher>Wrox</publisher>
  </book>
<book>
    <title>XML: Visual QuickStart Guide</title>
    <author>
      <last_name>Goldberg</last_name>
      <first_name>Kevin</first_name>
    </author>
    <author>
      <last_name>Doe</last_name>
      <first_name>John</first_name>
    </author>

    <year>2008</year>
    <publisher>Peachpit Press</publisher>
  </book>
<article>
    <title>Open Source PostgreSQL 8.3 Better Suited For Web Applications </title>
    <author>
      <last_name>Babcock</last_name>
      <first_name>Charles</first_name>
    </author>
    <journal>Information Week</journal>
    <year>2008</year>
    <pages>1</pages>
  </article>
<article>
    <title>FileNet Integrates a New XML Editor for Non-Techies</title>
    <author>
      <last_name>Roe</last_name>
      <first_name>David</first_name>
    </author>
    <journal>CMS Wire</journal>
    <year>2009</year>
  </article>
<article>
    <title>The Groundbreaking Potential of Codeless Ajax</title>
    <author>
      <last_name>Dusoe</last_name>
      <first_name>Jim</first_name>
    </author>
    <journal>Tech News World</journal>
    <year>2009</year>
    <pages>4</pages>
  </article>
<article>
    <title>Windows and .NET Watch: Recognizing DSL opportunities</title>
    <author>
      <last_name>O'Brien</last_name>
      <first_name>Larry</first_name>
    </author>
    <journal>Software Development Times</journal>
    <year>2009</year>
  </article>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM