XQuery:查询不按要求打印

时间:2015-10-06 18:58:24

标签: xml xquery

这是我的代码:

let $directors := distinct-values(
    for $director in //director
    where count(result/videos/video[director = $director]) >= 2
    return $director
    )
for $director in $directors
return (
    <movie director= " { data($director) } ">
    {
        for $movie in result/videos/video
        where $movie/director = $director
        return $movie/title
    }</movie>)
    )

这就是它产生的东西:

<?xml version="1.0" encoding="UTF-8"?>
<movie director=" Tokko ">
   <title>Doquissåpan, avsnitt 1</title>
   <title>Doquissåpan, avsnitt 2</title>
   <title>Doquissåpan, avsnitt 4</title>
</movie>

但我想要的是:

<?xml version="1.0" encoding="UTF-8"?>
<movie director=" Tokko ">
   <title>Doquissåpan, avsnitt 1</title>
   <title>Doquissåpan, avsnitt 2</title>
   <title>Doquissåpan, avsnitt 4</title></movie>

如果您没有注意到,这两者之间的区别就在于结束电影标签。我怎样才能让它在同一条线上?有没有办法阻止XQuery生成新行?

THX

1 个答案:

答案 0 :(得分:1)

我认为EditiX使用Saxon,虽然与其他IDE供应商如oXygen和Stylus Studio不同,但他们对此保持着非常的安静,并且他们与Saxonica没有任何商业关系。这意味着你可能会在查询中使用Saxon序列化指令(例如&#34;声明saxon:输出缩进=&#39;是&#39;&#34; - 除非EditiX做了一些事情来防止这种情况。但是,我不认为这会对你有所帮助。你看到的输出是你打开缩进时得到的结果。你似乎想要输出一些元素打开缩进,然后关闭对于其他人。如果你需要这种级别的控制,你将不得不完全关闭缩进并完全控制空格的输出&#34;手动&#34;通过在你的结果中包含空格文本节点查询。