xml - HTML 开始时查询意外结束?

标签 xml xml-parsing syntax-error xquery

我正在执行一个无需 HTML 即可运行的查询,但当我添加 HTML 时,可以更好地组织结果。当我添加<div>时和</div>标签,我收到错误(见下文)。这是查询:

let $doc := doc('test')  
for $v in $doc//item 
where $v/product_info/unit[.='9291']
return 
  <div>{ $v/seller_info/seller_company_id[position() lt 2]/text() } 
  </div> 
  <div>{ $v/seller_info/seller_rating[position() lt 3]/text() 
  </div>

在此文档中:

<item>
<item_number>1171270</item_number>
<seller_info>
<seller_company_id>6356</seller_company_id>
<seller_rating>C31</seller_rating>
<seller_rating>T150 hr.</seller_rating>
</seller_info>
<product_info>
<unit>2022</unit>
<sinfo>55 cases</sinfo>
<sinfo>Yu-gi-oh trading card pack</sinfo>
<sinfo>.45kg per unit</sinfo>
<sinfo>24.7500kg shipment</sinfo>
</product_info>
<product_info>
<unit>9291</unit>
<sinfo>7 units</sinfo>
<sinfo>Naruto, Classic, action figure</sinfo>
<sinfo>1.8kg per unit</sinfo>
<sinfo>12.6kg shipment</sinfo>
</product_info>
</item>

我收到的错误:

Stopped at line 4, column 85: [XPST0003] Unexpected end of query: '>{ $v/seller_in...'

最佳答案

当您想要返回多个元素时,您必须将它们包装在一个序列中。此外,您忘记了结束语 }在第二个<div/> .

let $doc := doc('test')  
for $v in $doc//item 
where $v/product_info/unit[.='9291']
return 
(
  <div>{ $v/seller_info/seller_company_id[position() lt 2]/text() } 
  </div>,
  <div>{ $v/seller_info/seller_rating[position() lt 3]/text() }
  </div>
)

关于xml - HTML 开始时查询意外结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12508418/

相关文章:

java - 如何在从 xml 解析中选择的微调器上显示/烘烤字符串数组的相关项

PHP MySQL 请求错误 : Parse error: syntax error, 意外 '%'

mysql - 从表中获取数据并将其保存在 XML 文件中

android - 在 Android 中使用 XML 形状设置绘制矩形

xml - 如何强制 Jackson 关闭一个空的 XML 元素?

javascript - xml2json 从数组返回 1 个对象

c - 如何用 C 语言从 xml 文件中解析/提取一些信息

shell - CSH如果: “Expression Syntax” Error for String Comparison with the value “(”

python - 是什么原因导致此Genshi的模板语法错误?

python - 从混合内容文档中提取多个 xml 树