XSLT 获取特定标记的第一次出现

2023-12-19

假设我有一个完整的 html 文档作为 XML 输入。
如果我只想输出 html 中的第一个(或任何)图像,XSLT 文件会是什么样子?


选择第一个的一个 XPath 表达式<img>文档中的元素是:

(//img)[1]

Do note that 一个经常犯的错误——如@Oded在他的回答中是建议以下 XPath 表达式——一般来说它可能会选择多个元素:

//img[1](: 错误的 !!! :)

这将选择所有<img>文档中的元素,每个元素都是第一个<img>其父母的孩子。

这是这个常见错误的确切解释——在W3C XPath 1.0 推荐 http://www.w3.org/TR/1999/REC-xpath-19991116/#path-abbrev:

NOTE: 位置路径//para[1]与位置路径含义不同/descendant::para[1]。后者选择第一个后代para元素;前者选择所有后代para父母的第一个孩子的元素。

进一步的问题如果文档定义了默认名称空间,则存在,XHTML 必须是这种情况。 XPath 将任何不带前缀的名称视为属于没有命名空间和表达(//img)[1]不选择任何节点,因为文档中没有属于该节点的元素没有命名空间并且有名字img.

在这种情况下,有两种方法可以指定所需的 XPath 表达式:

  1. (//x:img)[1]-- 前缀在哪里x(通过托管语言)与特定的默认命名空间相关联(在本例中,这是XHTML命名空间).

  2. (//*[name()='img'])[1]

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

XSLT 获取特定标记的第一次出现 的相关文章

随机推荐

  • 在滚动时有效调整 UITableViewCell 的大小

    大概的概念 我希望在用户滚动列表时动态调整 UITableViewCells 的大小 也就是说 使项目在到达列表底部时尺寸增大 注意事项 这是一个每秒需要刷新多次的进程 因为调用如下 void scrollViewDidScroll UIS
  • caret:结合分层的 createMultiFolds (repeatedCV) 和 groupKFold

    我的问题与中提出的问题非常相似插入符号 结合 createResample 和 groupKFold https stackoverflow com questions 48142617 caret combine createresamp
  • 在 pandas 数据框中的两列之间传输值

    我有一个像这样的熊猫数据框 p q 0 5 0 5 0 6 0 4 0 3 0 7 0 4 0 6 0 9 0 1 所以 我想知道 如何将较大的值传输到 p 列 反之亦然的 q 列 将较小的值传输到 q 列 如下所示 p q 0 5 0 5
  • Lua中的线程优先级

    我看了Lua的书 了解到Lua中的多线程是协作的 我找不到的是有关线程优先级的一些信息 我猜想具有相同优先级的线程会运行直到完成 因为多线程是协作的 或者完成了收益 如果一个线程的优先级高于另一个线程呢 它是否能够中断优先级较低的线程 或者
  • 允许的内存大小 268435456 字节已耗尽[重复]

    这个问题在这里已经有答案了 可能的重复 允许的 X 字节内存大小已耗尽 https stackoverflow com questions 4096582 allowed memory size of x bytes exhausted 我
  • 反序列化 ArrayList。没有有效的构造函数

    这就是我反序列化包含标识对象的 arrayList 的方式 public void deserializeArrayList String path qbank IdentificationHARD quiz try FileInputSt
  • Nextjs 在生产服务器上部署后不使用图像 url 获取图像

    对于生产部署 我们有一个由 3 台 Linux 机器组成的网络 其中两个用于部署 一个是 nginx 代理 对于开发部署 我们有一台单独的 Linux 机器 在前端 这是一个 nextjs 框架 内部 设置了一个 http proxy mi
  • VB中可以继承带参数的sub new(构造函数)吗?

    在下面的代码中我收到编译错误 Error Too many arguments to Public Sub New on the Dim TestChild As ChildClass New ChildClass c 我没有收到它Test
  • ASP.NET MVC3:您可以发布并绑定对象数组吗?

    我的任务是创建一个表单 允许用户向其中添加一组或多组答案 例如 他们将从下拉列表中进行选择 然后将另一组输入添加到表单中 他们可以重复此过程 X 次 就服务器上的处理而言 处理此问题的最佳方法是什么 我知道我可以将每个元素绑定到一个列表 然
  • Cucumber 2.0.0 与 RubyMine 6.x 和 TeamCity 格式化程序不兼容

    我正在尝试在我的自动化测试套件中设置 Cucumber 我目前正在使用 Ruby 2 0 但在使用 Ruby 2 2 时也遇到了同样的问题 我尝试过 Cucumber 2 0 0 以及 2 0 0 beta 3 它们似乎都不与 Ruby 2
  • 在 Restlet 中上传带有描述的文件

    我需要上传一个文件使用一些附加数据restlet 所以我创建了一个示例 html 页面 如下所示 h1 Upload File with RESTFul WebService h1
  • Github企业API合并后删除分支

    我目前正在使用 Github API 企业版 经过一番尝试和错误后 我能够使用curl X POST 更改拉取请求的状态 curl u
  • 如何向 XML (XSD) 架构中的复杂类型添加限制?

    谁能帮我添加一个限制到这个模式文件 OwnerEnglishName 我知道如何使用简单类型来做到这一点 而在复杂类型中我不知道如何做到这一点 有人可以帮忙吗 多谢 原始 XML
  • kotlin android 片段返回后空回收器视图

    我有这个 android 片段 class MainFragment BaseFragment private val recyclerView by lazy find
  • 运行中的配置变量!框架

    我是 Play 的新手 编写了我的第一个应用程序 该应用程序有一组它所依赖的 URL 用于从中提取数据并在 XML 响应上返回有效的 URL 该应用程序需要在不同的环境 Dev Staging 和 Prod 中运行 并且每个环境都需要自己的
  • Google 语音识别 API:每个单词的时间戳?

    可以使用 Google 的语音识别 API 通过发出请求来获取音频文件 WAV MP3 等 的转录http www google com speech api v2 recognize 示例 我说过 一二三五 在 WAV 文件中 Googl
  • Mach-O 符号存根 (IOS)

    我正在尝试了解 Mach o 文件的工作原理 并且利用可用的在线资源 特别是这里的 Apple 页面 http developer apple com library mac documentation developertools con
  • 如何通过类名获取同级元素,然后仅使用 Javascript 隐藏它?

    我有这个 html 结构 div div div class content div 我想隐藏名为的类的元素content给定同级元素 id 为xyz 在 jQuery 中我可以轻松地这样做 xyz siblings content css
  • Google Analytics iOS 活动跟踪开发测试

    我正在尝试对我的 iOS 应用程序使用 Google Analytics iOS 活动跟踪 但在将我的应用程序上传到 Appstore 之前 我想知道一切是否正常工作 我想在以下函数处放置一个断点 application UIApplica
  • XSLT 获取特定标记的第一次出现

    假设我有一个完整的 html 文档作为 XML 输入 如果我只想输出 html 中的第一个 或任何 图像 XSLT 文件会是什么样子 选择第一个的一个 XPath 表达式 img 文档中的元素是 img 1 Do note that 一个经