- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用字符串连接函数从 XML 文件中提取多个元素,该函数适用于单个元素。但是,当我尝试将另一个添加到我的代码中时,我看到的数据不正确。我怀疑我在某处遗漏了一个简单的东西,但似乎无法找到它..
示例 XML 数据:-
<books>
<book id="6636551">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">72771KAM3</xref>
<xref type="Non_Fiction" type_id="2">US72771KAM36</xref>
</book_xref>
</master_information>
<book_details>
<price>24.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications with XML.</description>
</book_details>
<global_information>
<ratings>
<rating agency="ABC Agency" type="Author Rating">A++</rating>
<rating agency="DEF Agency" type="Author Rating">A+</rating>
<rating agency="DEF Agency" type="Book Rating">A</rating>
</ratings>
</global_information>
<country_info>
<country_code>US</country_code>
</country_info>
</book>
<book id="119818569">
<master_information>
<book_xref>
<xref type="Fiction" type_id="1">070185UL5</xref>
<xref type="Non_Fiction" type_id="2">US070185UL50</xref>
</book_xref>
</master_information>
<book_details>
<price>19.25</price>
<publish_date>2002-11-01</publish_date>
<description>A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world.</description>
</book_details>
<global_information>
<ratings>
<rating agency="ABC Agency" type="Author Rating">A+</rating>
<rating agency="ABC Agency" type="Book Rating">A</rating>
<rating agency="DEF Agency" type="Author Rating">A</rating>
<rating agency="DEF Agency" type="Book Rating">B+</rating>
</ratings>
</global_information>
<country_info>
<country_code>CA</country_code>
</country_info>
</book>
</book>
</books>
for $x in string-join(('book_id,book_price', //book/book_details/price/string-join((ancestor::book/@id, .), ',')), ' ')
return $x
book_id,book_price
6636551,24.95
119818569,19.25
./publish_date
在下面的代码中我注意到的数据中为空白
./description
数据将填充到
./publish_date
柱子。
for $x in string-join(('book_id,book_price,book_pub_date,book_desc', //book/book_details/string-join((ancestor::book/@id, ./price, ./publish_date, ./description), ',')), ' ')
return $x
最佳答案
XQuery 中的序列被展平:表达式 (1, (2, 3), ((4)), (), 5)
和 (1, 2, 3, 4, 5)
是等价的。这意味着序列的长度(ancestor::book/@id, ./price, ./publish_date, ./description)
如果某些 XPath 子查询没有返回结果,则会有所不同。由于函数fn:string-join($strings, $sep)
只需将每对相邻项目之间的分隔符放在 $strings
中(展平),结果字符串中可以有不同数量的逗号。
为了保持 CSV 表的对齐方式,您可以在缺少值时插入空字符串。一个简单的方法是利用展平来发挥它的优势:($possibly-empty, '')[1]
$possibly-empty
包含一个项目(例如 'foo'
)然后计算结果为 ('foo', '')[1]
-> 'foo'
. ()
相反,表达式的计算结果为 ((), '')[1]
-> ('')[1]
(展平)-> ''
. for
/
return
)是完全多余的,因为您只迭代单个字符串元素,所以我省略了它):
string-join(
(
'book_id,book_price,book_pub_date,book_desc',
//book/book_details/string-join(
(
(ancestor::book/@id, '')[1],
(./price, '')[1],
(./publish_date, '')[1],
(./description, '')[1]
),
','
)
),
' '
)
declare function local:non-empty($possibly-empty) {
($possibly-empty, '')[1]
};
string-join(
(
'book_id,book_price,book_pub_date,book_desc',
//book/book_details/string-join(
(
local:non-empty(ancestor::book/@id),
local:non-empty(./price),
local:non-empty(./publish_date),
local:non-empty(./description)
),
','
)
),
' '
)
关于xml - 如何使用 XQuery 以 CSV 格式提取多个 xml 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49756285/
我是 XQuery 初学者。我需要任何软件来运行 XQuery 吗?我在哪里输入 XQuery 代码 - 在 HTML 页面或 XML 中?我应该使用什么扩展名来保存我的 XQuery 文件? 最佳答
我正在编写一个 XQuery,它需要检查正在运行的 XQuery 版本(eXist、Saxon 等)。是否有一个标准函数可以返回 XQuery 的系统属性,例如版本、供应商等? 我知道有一些系统特定的
我正在阅读 book about xQuery它充满了像元素构造函数这样的表达......我的问题是: 什么是元素构造函数,“{}”是元素构造函数吗? 最佳答案 元素构造函数创建一个元素。在 XQue
我在网站上阅读了大量的 XQuery 教程。几乎他们所有人都在教我 XQuery 语法。假设我已经了解了 XQuery 语法,那么我将如何在我的网站上实际实现 XQuery? 例如,我有book.xm
以下有什么区别: import module namespace fs = "http://expath.org/ns/file"; declare namespace an = "http://zo
我有note.xml: Tove Jani Reminder Don't forget me this weekend! 和note.xqy: let $srcDoc:="not
我正在寻找一个示例,它表明 XQuery 表达式评估不是顺序的。在将 XQuery 的功能特性与过程语言进行比较时,总是会提到这一点。 例如在 XQuery, 2nd edition ,在下面的部分:
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .
所以我有一个看起来像这样的 XQuery: for $i in /*:rootElement where $i/*:field = "test" return $i 这个查询返回了很多结果,但我真的只
我有一个xml文档如下 sony vijay 我正在尝试写一个 xquery 1) 找到具有给定用户 ID 的用户 - sony 2) 将给定用户的“test”属性值更改为
是否XQuery更新支持自增属性,就像SQL中的自增字段一样? 我正在使用 BaseX作为我的数据库。 最佳答案 给定 an answer from Christian Grün on the Bas
是否可以使用 XQUERY 来检索属性 filename从以下 XML?我正在尝试使用 /preFileDoc/inpXML/@filename但它不起作用...... ABC XYZ
尝试根据不同的过滤器计算一个集合中的汽车数量。即使我们看到多辆汽车满足要求,查询也返回计数 0。 fn:count(cts:search(fn:collection("com.cars"), cts:
我想在 xquery 中创建一个计数器。我最初的尝试如下所示: let $count := 0 for $prod in $collection let $count := $count + 1 re
我有一系列的值。他们都可以是平等的……或者不是。所以使用 XQuery 我想获得序列中最频繁的项目。 let $counter := 0, $index1 := 0 for $value in $se
当我查找 XQuery 示例时,有时会看到使用了运算符 =>。 我试图寻找它的含义,但找不到任何东西。由于我使用的是 MarkLogic,因此它可能仅适用于 MarkLogic,但我对此表示怀疑。 从
我必须使用 xquery 以 DDMMYYYY 格式创建日期字符串。输入到我的 xquery 的日期将类似于“2004-05-02T00:00:00+01:00”。截至目前,我正在使用以下解决方案来获
我正在使用 XQuery 执行加法。以下是数据库中保存的XML结构: 1 1001 50,1
忙于将 SQLServer 2008 R2 和 MarkLogic 8 与简单的个人实体进行比较。我的数据集适用于 100 万条记录/文档。注意:两个数据库都在同一台机器上(本地主机)。 以下 SQL
想象一下,如果我有一个以下格式存储在 Marklogic 中的 xml 文档: DocumentID question1
我是一名优秀的程序员,十分优秀!