XQuery和空HTML标记

顺式

我正在学习XQuery并尝试了一个中等复杂的示例。该查询本身可以工作,但是我无法按照我想要的方式添加HTML。

以下示例有效(在eXist-db XQuery引擎中)

for $current_value in $another_variable//some_tag/@attribute
return 
    <div><h1>{$current_value}</h1>
    {
    for $current_sub_value in $another_variable//some_tag
    where $current_sub_value/@attribute = $current_value
    return <p> { data($current_sub_value/@another_attribute) } </p>
    }
    </div>

但实际上

  • 我想摆脱包装div。
  • 我想为每个子结果(p ... / p)而不是一个新的段落,而只想在每个结果之后添加一个换行符(br)。

因此,预期结果将是这样的:

<h1> ... some text here ... </h1>
some text here ... <br />
another line here ... <br />

但是,无论我尝试过什么,我总是会遇到语法错误。

似乎可以使用封装XML标记中声明XQuery { ... }但是,如果XML标记不在XQuery周围,而是在XQuery之前或之后,该怎么办?

有没有办法告诉XQuery引擎:这是XQuery的一部分,这里是一些HTML,只需将它们连接在一起即可?(XPath函数concat()对我不起作用,它导致<br />被显示,< >并且确实可以逃脱。)

如上所述,我已经尝试了一些语法,但是总是收到错误消息。这是我所做的:

测试1/3

for $current_value in $another_variable//some_tag/@attribute
return 
    <h1>{$current_value}</h1>
    {
    for $current_sub_value in $another_variable//some_tag
    where $current_sub_value/@attribute = $current_value
    return <p> { data($current_sub_value/@another_attribute) } </p>
    }

结果:

执行表达式时发现错误:org.exist.xquery.XPathException:err:XPST0003意外令牌:{[在第4行,第5列]

测试2/3

for $current_value in $another_variable//some_tag/@attribute
{
return 
    <h1>{$current_value}</h1>
    for $current_sub_value in $another_variable//some_tag
    where $current_sub_value/@attribute = $current_value
    return <p> { data($current_sub_value/@another_attribute) } </p>
}

结果:

执行表达式时发现错误:org.exist.xquery.XPathException:err:XPST0003意外令牌:{[在第2行,第1列]

测试3/3

for $current_value in $another_variable//some_tag/@attribute
return
    <div>
    <h1>{$current_value}</h1>
    {
    for $current_sub_value in $another_variable//some_tag
    where $current_sub_value/@attribute = $current_value
    return data($current_sub_value/@another_attribute) <br/>
    }

结果:

意外的标记:(>同时期望元素构造函数的结束标记:div)

迪尔克

您基本上想要的是一系列项目在XML中,元素始终只有一个根节点。因此,例如,关于您的段落,<p>something</p>是一个元素,而所需的输出something<br/>是一系列项目,在这种情况下是字符串和元素。

在XQuery中,序列只是用括号括起来,例如('s', <a/>, 45)是一个序列。

因此,在您的情况下,以下应该可以正常工作:

for $current_value in $another_variable//some_tag/@attribute
return (
  <h1>{$current_value}</h1>,
  for $current_sub_value in $another_variable//some_tag
  where $current_sub_value/@attribute = $current_value
  return (data($current_sub_value/@another_attribute), <br />)
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XQuery和空HTML标记

来自分类Dev

HTML空标记约定

来自分类Dev

HTML空标记约定

来自分类Dev

如何删除空的html标记(包含空格和/或其html代码)

来自分类Dev

HTML-Entity编码的空HTML标记

来自分类Dev

锚标记中的空 Onclick 和 href

来自分类Dev

HTML元标记和HTTPS

来自分类Dev

如果HTML标记为空,则添加类

来自分类Dev

逻辑和标记,HTML和PHP

来自分类Dev

TransformerFactory破坏了<html>标记内的<input>和<br>标记

来自分类Dev

使用jsoup的HTML DOM的标记深度和最大标记深度

来自分类Dev

在xquery中使用标记化和匹配进行多关键字搜索

来自分类Dev

XQUERY:如何更新HTML文本,将行括在<span>标记中

来自分类Dev

jQuery和html 5 <template>标记

来自分类Dev

从HTML删除脚本标记和属性

来自分类Dev

WordPress 3.9复制HTML标记和Eclipse

来自分类Dev

CKEditor删除<html>和<body>标记

来自分类Dev

PHP和html标记的怪异问题

来自分类Dev

jQuery和html 5 <template>标记

来自分类Dev

HTML标记中的JSON和CodeIgniter

来自分类Dev

表格和 HTML5 标记

来自分类Dev

HTML中的空脚本标记是怎么回事?

来自分类Dev

剥离PHP中的所有空HTML标记对

来自分类Dev

在PHP中剥离所有空HTML标记对

来自分类Dev

使用sed从文件中删除空HTML标记

来自分类Dev

ActionView,Application.html.erb和HTML头标记

来自分类Dev

xquery“更新内容为空”

来自分类Dev

xQuery XML标记字符串

来自分类Dev

XQuery:如何从标记中获取特定值?