You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XQuery 1.0直接生成Markdown表格?求完整实现方法

用XQuery 1.0生成Markdown表格

要直接输出符合要求的Markdown表格,你可以把表头、分隔线和数据行拼接在一起,以下是完整代码:

(: 定义表头列名 :)
let $headers := ("id", "lname", "fname")
(: 生成表头行,用" | "分隔列 :)
let $header-row := string-join($headers, " | ")
(: 生成分隔线行,匹配示例格式;如果需要动态适配表头长度,可替换为下方注释的代码 :)
let $separator-row := string-join(("===", "=====", "====="), " | ")
(: let $separator-row := string-join(for $h in $headers return repeat("=", string-length($h)), " | ") :)
(: 生成所有数据行 :)
let $data-rows := for $i in doc("source.xml")//employees
                  return string-join(($i/id, $i/lname, $i/fname), " | ")
(: 拼接所有部分,用换行符分隔 :)
return string-join(($header-row, $separator-row, $data-rows), "
")

代码说明:

  1. 表头行:通过string-join把定义好的列名用" | "连接,生成id | lname | fname格式的行。
  2. 分隔线行:示例中用固定长度的等号,也可以用repeat("=", string-length($h))动态生成和表头长度一致的分隔线,适配不同列名长度。
  3. 数据行:保留你原来的遍历逻辑,把分隔符改成" | ",和表头格式统一。
  4. 拼接输出:用string-join把表头、分隔线、数据行用XML换行实体
拼接,XQuery输出文本时会自动解析为换行,生成完整的Markdown表格。

如果你的XML中employees的子元素名和表头完全一致,还可以动态获取表头,避免硬编码:

let $first-employee := doc("source.xml")//employees[1]
let $headers := local-name($first-employee/*)
(: 后续逻辑同上 :)

内容的提问来源于stack exchange,提问作者user23473858

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:17:38