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

XML处理需求:空tbody所在table替换为‘no data available’

解决XML中空<tbody>表格替换需求

推荐使用XSLT来处理这个XML转换任务,它是专门针对XML文档结构转换的工具,能精准实现你要的逻辑:当<text>标签内的<table>包含空的<tbody />节点时,把整个<table>替换成文本no data available。

完整XSLT代码

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 身份模板:默认复制所有节点和属性 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <!-- 匹配符合条件的<table>:位于<text>下,且包含空的<tbody> -->
    <xsl:template match="text/table[tbody[not(node())]]">
        <xsl:text>no data available</xsl:text>
    </xsl:template>
</xsl:stylesheet>

代码解释

  • 身份模板:这是XSLT的基础模板,作用是原样复制XML中所有未被特殊模板匹配的节点和属性,保证其他内容(比如示例里的<title>标签)不受影响。
  • 匹配模板:专门定位<text>标签下的<table>元素,并且检查它的<tbody>是否没有任何子节点(也就是空的<tbody />)。一旦匹配成功,就输出指定文本代替整个<table>。

示例验证

输入XML

<title>Payers</title>
<text>
    <table border="1" width="100%">
        <thead>
            <tr>
                <th>Payer Name</th>
                <th>Policy Type</th>
                <th>Policy Number</th>
                <th>Effective Date</th>
                <th>Expiration Date</th>
            </tr>
        </thead>
        <tbody />
    </table>
</text>

输出XML

<title>Payers</title>
<text> no data available </text>

你可以用任何支持XSLT的工具(比如Saxon、Xalan这类库,或者一些在线XML转换工具)来运行这段代码,就能得到你想要的结果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:01:00