xsltproc 不按名称选择元素

2023-11-29

我正在尝试使用 XSLT 样式表转换 XHTML,但我什至无法获得基本样式表来匹配任何内容。我确信我错过了一些简单的事情。

这是我的 XHTML 源文档(没什么大惊喜):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 25 March 2009), see www.w3.org" />
...
</body>
</html>

实际内容并不重要,我将在下面演示。顺便说一句,我很确定该文档格式良好,因为它是通过创建的tidy -asxml.

我的更复杂的 XPath 表达式没有返回任何结果,因此作为健全性测试,我尝试使用以下样式表非常简单地对其进行转换:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
    <xsl:template match="/">
        <xsl:text>---[</xsl:text>
        <xsl:for-each select="html">
            <xsl:text>Found HTML element.</xsl:text>
        </xsl:for-each>
        <xsl:text>]---</xsl:text>
    </xsl:template>
</xsl:stylesheet>

转换是通过完成的xsltproc --nonet stylesheet.xsl input.html,输出为:“---[]---”(即,它没有找到html)。但是,如果我改变for-each部分至:

<xsl:for-each select="*">
    <xsl:value-of select="name()"/>
</xsl:for-each>

然后我得到“---[html]---”。同样,如果我使用for-each select="*/*"正如我所期望的,我得到“---[headbody]---”。

为什么它可以通过以下方式找到子元素* (with name()给出正确的名称)但直接使用元素名称找不到它?


The html源 XML 中的元素定义了一个命名空间。您必须将其包含在您的匹配表达式中并在您的匹配表达式中引用它xsl:stylesheet元素:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:html="http://www.w3.org/1999/xhtml">
    <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
    <xsl:template match="/">
        <xsl:text>---[</xsl:text>
        <xsl:for-each select="html:html">
            <xsl:text>Found HTML element.</xsl:text>
        </xsl:for-each>
        <xsl:text>]---</xsl:text>
    </xsl:template>
</xsl:stylesheet>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xsltproc 不按名称选择元素 的相关文章

  • BaseX:在哪里声明要执行查询的 XML 文档

    通过 BaseX 程序 我能够使用 XPath 和 XQuery 来查询位于我的主目录中的 XML 文档 但在 XSLT 中执行相同操作时遇到问题 我查询的文档是书店Q xml https raw github com elexhobby
  • 使用 XSLT 根据属性值合并 2 个 XML 文件?

    文件1 xml
  • 通过 XSL 查看 XML 到 XHTML 转换中的源代码

    我正在尝试使用 XSL 文件将 XML 文件转换为 XHTML 文件 如何查看转换后输出的XHTML源代码 我目前正在通过 Firefox 查看结果 但我看到的只是 XHTML 文件的渲染版本 我想查看源代码 但是当我转到 查看 gt 页面
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 带有嵌套表的 XSLT 中的数据对齐问题

    我正在通过 FoundationPHP 使用 XSLT 和嵌套表生成 Word 文档 我想要的结果是 Table 1 Table 2 Image 1 Image 2 Label 1 Label 2 Data 1 Data 2 Table 3
  • xsl:character-map 来替换特殊字符

    给定一个值为
  • xpath/xslt 确定上下文节点相对于所有同名节点的索引?

    给定下面的模式 以 查询 节点作为上下文 是否可以使用 xpath xslt 确定该 查询 节点相对于文档中所有 查询 节点的索引 而不是相对于其的position 直系兄弟姐妹 TIA Geoff section section
  • XSLT:如何在“匹配”属性中表示 OR?

    我想对与名称 A 或 B 匹配的元素执行一系列操作 我在想下面类似的事情 但它不起作用
  • 使用 XSLT 进行数据透视

    我有一个像这样的 xml 文件
  • 在 XSL 中按 2 个字段分组

    我有下一个 xml
  • 用 xslt 的字符串替换字符串

    我想用另一个字符串替换一个字符串 我找到了一个例子 可以做到这一点 但似乎不起作用 这是样本数据
  • XSLT if - 属性等于字符串

    我正在使用一个xsl if在较大的条件下执行较小的条件xsl template块 我想测试当前属性的相等性xsl template匹配的节点 以下内容不起作用
  • 如何设置 Apache FOP 中的默认语言

    我正在使用 Apache FOP 2 1 生成 PDF 文件 为此 我尝试将默认语言设置为英语 这应该在通过 Adob e Reader 的选项 文件 属性 高级 阅读选项 创建 PDF 后进行验证 该值当前为空 我尝试过设置xml lan
  • XPATH / XSLT:选择父节点的属性与另一个节点的属性匹配的节点

    我正在尝试使用 XPath 和 XSLT 对以下 XML 进行转换
  • 随机推荐

    • Django 中的 DecimalField 验证

      我正在尝试验证DecimalField在姜戈中 在外壳中尝试 gt gt from django forms import DecimalField gt gt from django core validators import MaxV
    • WinSCP 命令行:在缓存错误中找不到主机密钥

      我第一次尝试从 WinSCP 命令行连接到 Unix 服务器 它关闭并出现以下错误 在缓存中找不到服务器的主机密钥 您无法保证 服务器是您认为的计算机 服务器的 rsa2 密钥指纹是 ssh rsa 1024 42 9e c7 f4 7f
    • 在 C++14 中使用 auto 作为返回值和参数类型

      在 Bjarne Stroustrup 的书 C 编程语言 的第四版中 我们读到 使用 auto 我们可以避免冗余和编写长类型名称 这在泛型编程中尤其重要 因为程序员很难知道对象的确切类型 并且类型名称可能很长 第 4 5 1 节 所以 了
    • iReport 中每个组的新页面

      我正在使用 iReport 5 6 0 我想为每个组创建新页面 例如我有桌子people i know Id Name State 1 Tom friends 2 Jim friends 3 Mike enemy 4 Alex friend
    • 使用 pyuic 将 .ui 转换为 .py?

      我正在使用 OSX 10 8 python 2 7 5 我刚刚使用 QtDesigner 构建了一个 GUI 并试图弄清楚如何在 Python 中使用它 我发现我必须使用 pyuic 以及如何在此处执行此操作 pyqt在mac osx雪豹中
    • asp.net通过kerberos将Windows身份验证集成到sql服务器

      请问有人可以提供一种简单 直接的方法来启用 ASP NET gt Kerberos gt Sql Server 吗 我们有客户端机器 gt 网络服务器 gt 数据库服务器 客户端坚持要求站点必须拉取 Windows 登录名而不是提示 因此需
    • Java 中的强制可克隆接口

      我在 Java 中遇到了一个小问题 我有一个名为 可修改 的界面 实现此接口的对象是可修改的 我还有一个 ModifyCommand 类 具有命令模式 它接收两个可修改对象 以进一步在列表中交换它们 这不是我的问题 我已经设计了该解决方案
    • 如何使用 FormData API 发出 POST 请求

      我想使用 http post 将用户名和 form data 对象传递到 php 文件 当我只传递 form data 时 它可以上传我的图片 但我还想传递一些其他信息 例如用户名 请帮助我如何在 http post 中传递其他数据 这是我
    • Mongoose 仅​​选择在架构中明确声明的字段

      当使用 Mongoose 并查询数据库时 默认情况下会选择所有字段 并且我必须明确告诉 Mongoose 我不想选择哪些字段 例如 如果我不想要该字段user我应该做 var schema new Schema insertedAt typ
    • 从 GridView 项目中获取值

      我正在开发一个项目 其中有一个 5x5 的 TextView 网格 我想检查整行或整列是否具有相同的元素 我正在使用 Adapter 类来仅用一个 textview 元素来扩充我的 gridview 这是我尝试过的代码 但我似乎无法使其工作
    • Android 2.2 联系人生日日期

      我正在尝试从 android 2 2 的联系方式获取生日日期 有人可以帮我查询一下吗 这是我的代码 Override public void onCreate Bundle savedInstanceState super onCreate
    • socket.io 和不同的文件夹 --- 找到解决方案

      我是 socket io 的新手 我已经遇到了一个问题 我认为是小问题 我已经使用 npm 正确安装了 node js 和 socket io 然后为了测试 我从 socket io 剪切并粘贴了一个代码示例 一切正常 现在 我想构建我的代
    • PHP:imagepng 正在创建异常大的文件

      我正在使用我编写的一个简单的缩略图脚本 它非常标准 imgbuffer imagecreatetruecolor thumbwidth thumbheight switch type case 1 image imagecreatefrom
    • PHP PDO 扩展无法在 IIS 上运行

      我有一个使用 autoload 加载类的脚本 愚蠢 我知道 这是我用来娱乐 测试的旧代码 它似乎正在尝试自动加载 PDO 这让我相信它没有找到应有的 PDO 类 我已经检查了 php ini 和 php pdo dll 是否已启用 以及 p
    • 在 Android 上旋转 YUV 字节数组

      我正在寻找旋转从 Preview Callblack 收到的 YUV 帧预览 到目前为止 我已经创建了这篇文章 其中包含一种旋转帧预览的算法 但弄乱了预览图像相机像素旋转 旋转图像的另一种方法是从 YUV 图像创建 jpg 创建位图 旋转位
    • 生成一系列值之间的随机双精度值

      我目前无法生成 32 768 和 32 768 之间的随机数 它一直给我相同的值 但小数字段有微小的变化 例如 27 xxx 这是我的代码 任何帮助将不胜感激 include
    • 如果前一个参数为空,则参数没有默认值?

      我有这个查询 除非我尝试在参数中传递空值 否则它似乎可以工作 using OleDbCommand com new OleDbCommand INSERT INTO GROUP Group Number Group Name Address
    • 文件输入“接受”属性 - 有用吗?

      在html下实现文件上传相当简单 但我只是注意到有一个 accept 属性可以添加到
    • 以编程方式禁用键盘和鼠标

      有没有办法禁用键盘和鼠标 Ideally I m looking for a solution whereby I could completely disable mouse and almost disable the keyboard
    • xsltproc 不按名称选择元素

      我正在尝试使用 XSLT 样式表转换 XHTML 但我什至无法获得基本样式表来匹配任何内容 我确信我错过了一些简单的事情 这是我的 XHTML 源文档 没什么大惊喜