XSL if else 条件

2024-02-15

我有一个要求,我想要 if else 语句来检查节点是否具有属性或仅具有字符串。

例如:1 个节点有0 File(s) found另一个具有诸如<autoincludesystem_info mdate='08/23/2011' mtime='09:51' ampm='PM' filesize='64' filename='AFP_p.tgp' />

下面是两个节点的示例

<product>
<autoIncludeUser>0 File(s) found</autoIncludeUser>
<autoIncludeSystem>
<autoincludesystem_info mdate='08/23/2011' mtime='09:51' ampm='PM' filesize='64' filename='AFP_p.tgp' />
<autoincludesystem_info mdate='08/23/2011' mtime='09:51' ampm='PM' filesize='3,879' filename='AnalystsExpressionMacros.tgp' />
<autoincludesystem_info mdate='08/23/2011' mtime='09:51' ampm='PM' filesize='475' filename='base64Converter.tgp' />
<autoincludesystem_info mdate='08/23/2011' mtime='09:51' ampm='PM' filesize='&lt;DIR&gt;' filename='codePages' />
</autoIncludeSystem>
<autoIncludeStudio>0 File(s) found</autoIncludeStudio>
<externalLibrarySystem>
<externalLibrarySystem_info mdate='08/23/2011' mtime='09:52' ampm='PM' filesize='196,608' filename='AFPtoXML_DP.dll' />
<externalLibrarySystem_info mdate='08/23/2011' mtime='09:52' ampm='PM' filesize='13,259' filename='ASN1toXSDRunner.jar' />
<externalLibrarySystem>
</product>

我如何识别节点是否只有字符串或属性,并基于此我可以获取值String or attrib values分别。


我们可以使用下面的代码来实现 if else

<xsl:choose>
    <xsl:when test="something to test">

    </xsl:when>
    <xsl:otherwise>

    </xsl:otherwise>
</xsl:choose>

这就是我所做的

<h3>System</h3>
    <xsl:choose>
        <xsl:when test="autoIncludeSystem/autoincludesystem_info/@mdate"> <!-- if attribute exists-->
            <p>
                <dd><table border="1">
                    <tbody>
                        <tr>
                            <th>File Name</th>
                            <th>File Size</th>
                            <th>Date</th>
                            <th>Time</th>
                            <th>AM/PM</th>
                        </tr>
                        <xsl:for-each select="autoIncludeSystem/autoincludesystem_info">
                            <tr>
                                <td valign="top" ><xsl:value-of select="@filename"/></td>
                                <td valign="top" ><xsl:value-of select="@filesize"/></td>
                                <td valign="top" ><xsl:value-of select="@mdate"/></td>
                                <td valign="top" ><xsl:value-of select="@mtime"/></td>
                                <td valign="top" ><xsl:value-of select="@ampm"/></td>
                            </tr>
                        </xsl:for-each>
                    </tbody>
                </table>
                </dd>
            </p>
        </xsl:when>
        <xsl:otherwise> <!-- if attribute does not exists -->
            <dd><pre>
                <xsl:value-of select="autoIncludeSystem"/><br/>
            </pre></dd> <br/>
        </xsl:otherwise>
    </xsl:choose>

我的输出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSL if else 条件 的相关文章

  • 在 Word 2010 中开发功能区选项卡,在组标签名称中使用 & 符号

    我正在开发一个用于模板的功能区选项卡 MyTemplate dotm 对于 Word 2010 我的问题 我想在组的标签中使用与号 我尝试了很多方法 也用谷歌搜索了很多关于这个问题的信息 但没有任何效果 named amp decimal
  • 如何创建序列化对象集 C#

    有多种类型 在特殊情况下可以以不同的方式配置 如何将它们序列化 Serializable XmlRoot RootXml Namespace public class RootXml object schemaVersion XmlElem
  • 在 Sql Server 中启用 DTD 支持

    我有各种 xml 文档需要存储在数据库列中 这些文档包含对 DTD 的引用 并且 SQL Server 不会导入 xml 因为它存在安全风险 如何在数据库上启用 DTD 支持 以便它可以让我插入 xml 内容 你必须CONVERT首先 MS
  • 使用 xsd.exe 工具从具有多个命名空间的 XML 文件生成 XSD 文件

    我想做的事 我正在尝试为现有 XML 文件生成 XSD 文件 我正在使用xsd exe工具 随 Visual Studio 一起提供 XML 文件中的某些元素是命名空间限定的 在某些情况下 本地名称是相同的 如下所示
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • 如何在 XSLT 中应用字母数字排序

    根据以下 XML 在 XSL 中实现字母数字排序的最佳方法是什么 Edit 澄清一下 下面的 XML 只是一个简单的示例 真正的 XML 将包含更多的变体值 使用将标签文本拆分为文本和数字部分substring before and sub
  • 如何选择将特定节点作为子节点的第一个前同级节点?

    我一直在尝试编写一个 XPath 语句 它将选择节点的第一个前同级节点 该兄弟节点应该有一个特定的节点作为其子节点 例如 a a
  • Chrome 扩展:以编程方式检查元素和“复制 xpath”或“复制 css 路径”[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否可以以编程方式访问一个元素 比如说我悬停在其上的当前元素 并执行相当于右键单击它 转到 检查元素 在 元素 选项卡中选择它
  • 使用 boost 将命名空间添加到 XML

    我正在尝试使用 boost 生成 xml 到目前为止一切顺利 但是生成的 xml 需要有一个命名空间 所以而不是
  • 创建自定义弹出对话框菜单

    我目前正在尝试在单击菜单按钮时实现弹出菜单 如下图所示 我尝试了 popupwindow 方法 但无法实现确切的情况 这就是我正在尝试的方式 private View OnClickListener showPopupWindow retu
  • 使用 NSXMLParser 在 Swift 中解析分层 XML

    我确实在以我实际可以使用的形式获取分层 XML 值时遇到问题 因此我们将不胜感激 我对 Swift 和 IOS 开发还很陌生 所以说实话我并不完全理解解析器 但我希望在这之后我能理解 下面是我尝试解析的示例 XML 它来自肥皂网络服务 连接
  • 使用 Sandcastles 将图像嵌入 CHM 帮助文件

    我正在使用 Sandcastles 为我的项目生成 CHM 帮助文件 我想要一个可以分发的独立 CHM 文件 最好是单独分发 我遇到的问题是嵌入图像appears该图像需要与 CHM 文件分开存在于用户系统上 当我查看 CHM 文件的来源时
  • 在Python中读取XML文件并获取其属性值

    我有这个 XML 文件
  • 我们可以使用 Netbeans 7 执行 XSLT 2.0 吗?

    在当前形式下 Netbeans 仅支持 XSLT 1 0 不支持 XSLT 2 0 我们如何将 XSLT 2 0 与 Netbeans 7 结合使用 如何使 Saxon 成为 JRE 安装默认 XSLT 处理器 因此 不仅 Netbeans
  • 将 XML 的所有字段(和子字段)导入为数据框

    为了进行一些分析 我想使用 R 和 XML 包将 XML 导入数据帧 XML 文件示例
  • 使用 PEM 证书验证 Powershell 中的 XML 签名

    我正在尝试创建一个 powershell 脚本来使用 XML 文档中的数据 然而 在进行任何工作之前 我需要通过验证签名来验证 XML 没有被篡改 我有一份用于以 PEM 格式签署 XML 的证书的公钥副本 但我不知道如何让 powersh
  • 如何判断手机是否有刘海

    如果存在缺口 我需要修改应用程序的工具栏 现在 该凹口隐藏了工具栏中的一些内容 if Build VERSION SDK INT Build VERSION CODES LOLLIPOP Build VERSION SDK INT Buil
  • 在 Postman 中解析对另一个请求的 XML 响应

    我必须测试一些以 XML 格式响应的 Web 服务 并且我想解析从第一个请求到第二个请求调用的响应 Ex 我提出第一个请求
  • @android的含义

    我想问一下是什么意思 android as in android id android id list 我在不同的 android 示例和教程中看到过它 我也用谷歌搜索过它 我发现的唯一解释是 列表和空 ID 是由 Android 平台为我
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例

随机推荐