2016-11-07 1 views
1

コンパクトngのリラックスで疑似テーブル:テーブルを書き直すべきですか?これに関して複数のイテレータを実行できますか? XQueryの

element books 
     element book 
      element publisher 
       element publisherinfo 

テーブル(しかし、ノルウェーで):

datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes" 

element bøker{ 
    element bok{ 
     attribute isbn{text}, 
     element title{text}, 
     element utgave{text}, 
     (element forfatter{text} 
     |element redaktør{text}), 
     element utgivelsesår{xsd:int}, 
     element fagfelt{text}*, 
     element referans{text}?, 
     element innholdsfortegnelse{ 
      element komponent{text}+ 
     }, 
     element forlag{ 
      text, 
      element url{text}, 
      element kontaktinfo{ 
       element telefon{xsd:integer}?, 
       element epost{text}?, 
       element adresse{ 
        element gate{text}, 
        element gatenmr{text}, 
        element postnmr{xsd:int} 
       }?, 
       element kontaktperson{ 
        element navn{ 
         element fnavn{text}+, 
         element mnavn{text}?, 
         element enavn{text} 
        }, 
        element adresse{ 
         element gate{text}, 
         element gatenmr{text}, 
         element postnmr{xsd:int} 
        }?, 
        element telefon{xsd:integer}? 
       }? 
      } 
     } 
    }* 
} 

は、出版社を見つけるために、このを反復処理するためにそこに方法であり、彼らが持っているかどうかを確認これらの条件を満たしていた(発行者はトピック(fagfelt)aおよびb)の書籍をリリースした。

両方の科目についてのみ本を出版したすべての出版社を探したいと思います。

可能性を高めるためにこれを書き直す必要がありますか、方法がありますか?言う

//forlag[parent::bok[child::fagfelt='foo' and child::fagfelt='bar']] 

、「すべてのforlagをゲット:私は私はあなたが次のXPath式で欲しいものを得ることができると思い、あなたのRelaxNGの権利を読めば、私はXQueryおよびXML

答えて

1

で未経験だ

テキスト内容がfooである子fagfelt要素とテキスト内容がbar "である子fagfelt要素の両方を有する親bok要素を有する要素を含む。

これは、すべての一致する要素のセットを返します。 XQuery(またはXSLT)を使用してそれを繰り返すことができます。

関連する問題