在 Firefox 和 IE 中使用 XSLT 进行 XML 到 XML 转换

2024-06-26

我从几种 XML 格式转换为一种标准。 我的 XSL 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="list | store">
        <list>
            <xsl:for-each select="item | product | product-store">
            <item>
                <name>
                    <xsl:choose>
                        <xsl:when test="name"><xsl:value-of select="substring-before(name, ' ')" /></xsl:when>
                        <xsl:otherwise><xsl:value-of select="name | title" /></xsl:otherwise>
                    </xsl:choose>
                </name>
                <desc>
                    <xsl:choose>
                        <xsl:when test="name"><xsl:value-of select="substring-after(name, ' ')" /></xsl:when>
                        <xsl:otherwise><xsl:value-of select="desc" /></xsl:otherwise>
                    </xsl:choose>
                </desc>
                <nr><xsl:value-of select="index | number" /></nr>
            </item>
            </xsl:for-each>
        </list>
    </xsl:template>
</xsl:stylesheet>

我的示例 XML 是

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
<list>
    <item>
      <index>1362242627</index>
      <name>test 22</name>  
    </item>
    <item>
      <index>2362625609</index>
      <name>test 4</name>  
    </item>
    <item>
      <index>736274650</index>
      <name>test 76</name>  
    </item>
</list>

为什么在 Firefox 17、IE9、Google Chrome 等浏览器中无法正确显示?它们像普通文本一样显示它,但返回类型是“text/xml”。 它仅在 Opera 中正常工作。


我认为问题在于分辨什么是“正确”的显示。像 Firefox 或 IE 这样的浏览器会假定一旦您加载了带有以下内容的 XML 文档:xml-stylesheet类型的处理指令text/xsl在浏览器窗口中,您希望将 XML 转换为浏览器知道要呈现的内容,例如 HTML 或现在的 (X)HTML 加 SVG(或加 MathML)。然而,您的样式表获取 XML 输入并将其转换为浏览器未知的某种 XML 结果格式,因此它所做的只是呈现结果树中文本节点的内容。 Opera 似乎将 XML 输入转换为 XML 结果,但随后它似乎认识到结果格式未知,并决定渲染结果的源树。这可能是您喜欢的,但我不确定是否有规范要求这种行为。

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

在 Firefox 和 IE 中使用 XSLT 进行 XML 到 XML 转换 的相关文章

随机推荐

  • 获取模板参数的字符串表示形式

    我希望能够在模板类中创建一个方法 该方法返回模板参数中替换的类型的名称 eg template
  • 为什么我在运行 ngserve 命令时收到以下错误消息?

    运行 ngserve 命令时 我不断收到以下错误消息 我该如何解决这个问题 您似乎不依赖于 angular core 这是一个错误 别忘了跑步npm install设置后 应该可以做到这一点
  • 对 AAssetManager_fromJava 的未定义引用

    我正在尝试使用 AAssetManager 从 Android apk 访问资源 然而 我不断得到 未定义对 AAssetManager fromJava 的引用 即使我已包含 asset manager h 和 asset manager
  • 动态创建的 Jenkins 管道脚本

    我正在使用詹金斯管道项目 在脚本中我想写parallel以动态方式阻止 因为节点数量可以改变 例如 从此 parallel node1 node stage1 stage2 node2 node stage1 stage2 像这样的事情 f
  • 如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

    Windows 命令行中有没有一种方法可以检索标准化文件或目录的日期 时间戳 修改 创建 访问 独立于语言环境格式 例如 ISO8601 http www iso org iso home standards iso8601 htm 我发现
  • 如何使用drive realtime api创建实时工作表

    我已经获得了 Drive realtime API 来处理文档 但我还没有找到任何工作表的参考 我还能够将工作表嵌入到网页中 但它是不可编辑的 如何嵌入协作实时工作表 实时 API 用于使用您自己的自定义文档类型创建协作项目 而不是用于编辑
  • 矩阵乘法,求解 Ax = b 求解 x

    因此 我接到了一项家庭作业 要求求解三次样条的系数 现在我清楚地了解如何在纸上以及使用 MatLab 进行数学计算 我想用 Python 解决问题 给定一个方程 Ax b 其中我知道 A 和 b 的值 我希望能够使用 Python 求解 x
  • magento 中的自动发票

    我创建了新的自定义产品类型 它扩展了 magento 中的虚拟产品 现在我想阻止在线支付的自动发票 例如 当订单包含至少一种自定义产品类型时 使用 Paypal 所有包含此类产品的订单都必须手动开具发票 我应该如何解决这个问题 最好的方法是
  • Python 中的“私有”属性

    我对 Python 比较陌生 所以我希望我没有错过一些东西 但是这里 我正在尝试编写一个Python模块 并且我想创建一个具有 私有 属性的类 该属性只能 或者可能 应该 只能通过模块内的一个或多个函数进行修改 这是为了使模块更加健壮 因为
  • 在 Dart 中,将动态转换为给定类型或返回 null 的语法好方法吗?

    我有一个dynamic x我想分配x to T s if x is T 否则分配null to s 具体来说 我想避免输入x两次 并避免创建临时的 例如 我不想写String s map key is String map key null
  • 设计没有路由与指定删除的链接中的 [GET]“/users/sign_out”匹配

    因此 我四处寻找解决此问题的方法 大多数人似乎都说了同样的话 但对解决我的问题没有多大作用 我已在链接中指定了删除方法 但路由错误表明这是一个 GET 请求 知道为什么下面的链接最终会覆盖 忽略方法声明吗 Routes devise for
  • 如何在连续循环中使用python多处理池

    我正在使用 python 多处理库来执行 selenium 脚本 我的代码如下 start and join multiple threads thread list total threads 10 no of parallel thre
  • 如何在网页中渲染 Blender 模型?

    因此 我探索了在网络应用程序中渲染搅拌机模型的多种选项 现在我将模型导出为 gltf格式 这是我的代码 App js import React Suspense from react import App css import Model
  • 如何隐藏标签栏并在屏幕上显示完整的表格视图?

    在我的应用程序的实现中 我有一个带有 5 个不同选项卡的选项卡栏控制器 通过以下代码隐藏标签栏后 void hideTabBar for UIView view in self tabController view subviews if
  • 在堆栈视图内的 Uilabel 之间创建垂直线 [重复]

    这个问题在这里已经有答案了 我想在代码中创建一个带有自定义标头的 UICollectionView 因此 我创建了 UICollectionViewCell 的子类来描述我的自定义标头 我想在标题中以水平线显示五个标签 因此 我创建了五个标
  • Drools JBOSS 规则嵌套 IF

    我是 Jboss Rule 的新手 我已阅读文档 但找不到开始为以下代码示例编写规则的方法 For each User code in the list If User code 11 If User code 17 present in
  • 手动 DAG 运行设置单个任务状态

    我有一个没有时间表的 DAG 它根据需要手动运行 它有很多任务 有时我想通过手动将任务状态更改为成功来 跳过 一些初始任务 更改手动执行的 DAG 的任务状态失败 似乎是因为解析execution date 时出现错误 是否有另一种方法可以
  • Java中的正弦波曲线拟合

    我正在使用阿帕奇共享数学 https commons apache org proper commons math index html包 我有以下正弦波 0 90 0 85 0 80 0 83 0 89 0 90 0 85 0 80 0
  • 展平 ggplot2 中的 alpha 通道

    ggplot2 的某些对象 函数 支持 alpha 通道 http docs ggplot2 org current geom point html http docs ggplot2 org current geom point html
  • 在 Firefox 和 IE 中使用 XSLT 进行 XML 到 XML 转换

    我从几种 XML 格式转换为一种标准 我的 XSL 如下所示