首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xquery结果的格式不正确

Xquery结果的格式不正确
EN

Stack Overflow用户
提问于 2012-04-11 22:34:28
回答 1查看 2.3K关注 0票数 1

我刚刚开始在Xqilla中使用Xquery。

我希望返回的结果具有正确的缩进和换行符。

我有一个名为$duplicates的导演列表,我想在我的返回语句中从这些导演那里获取所有电影标题。

我的返回语句:

代码语言:javascript
复制
for $duplicate in $duplicates
return 
    <movie director="{$duplicate}"> 
    {$result/videos/video/title[../director=$duplicate]}</movie>

我希望它的格式(有点)是这样的:

代码语言:javascript
复制
<movie director="Coppola">
    <title>The Godfather</title>
    <title>The Godfather pt. 2</title>
    <title>Apocalypse Now</title></movie>

将子项适当缩进,每个子项在新行上。

我得到的是:

代码语言:javascript
复制
<movie director="Coppola">
     <title>The Godfather</title><title>The Godfather pt. 2</title><title>Apocalypse Now</title></movie>

将所有标题放在一行中。

因为我之前已经通过简单地返回一个变量成功地返回了一个标题列表,所以我尝试了一个带有for循环的嵌套返回语句,就像wikibooks上建议的那样。此解决方案还包含显式定义的<title>-tags。

我发现一个人在here上有同样的问题。

这里的答案并不管用。当我添加一个命名空间时,我的程序完全停止了输出。我也更希望有一些非杂乱无章的解决方案(似乎有,因为每个人似乎从一开始就得到了完美的输出)。

问题似乎在于将XML和Xquery与花括号混合使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-12 05:36:26

这不是查询的问题,而是设置用于控制输出序列化的标志和选项的问题。

您可能想要的是set the XQilla format-pretty-print flag to true,或者(对于XQuery 3.0)在您的prolog中使用the indent XQuery serialization option,如下所示:

代码语言:javascript
复制
declare option output:indent "yes";

如果这是针对命令行使用的,并且您还没有可用的XQuery 3.0支持,那么您也可以使用其他漂亮的打印工具(如果在XQilla中没有一种明确的方法来设置序列化选项)。例如,通过管道将输出输出到xmlstarlet fo将在第二次遍历中打印出来。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10108093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档