在 PHP 中验证 XHTML5?

2023-12-13

背景

I have made the decision to serve my website as application/xhtml+xml to anyone who will accept it. I understand that there are consequences, which consequences I'm willing to accept.

Problem

I'm trying to validate XHTML5 in PHP. That way, I can serve the file as text/html if validation fails (hey, ain't nobody perfect). My question has merit even when taken outside of my situation, though.

那么我有哪些选项来验证 XHTML5?


我做了什么:

我已经在使用 PHP 了DOMDocument在我的源代码中作为模板的形式,所以我希望能够使用DOMDocument::relaxNGValidate or DOMDocument::schemaValidate。我都找不到.xsd nor .rng使用。不过,我想我已经找到了制作 rng 语法的目录在......之外。在今天之前,我从未听说过 Relax NG。对这个方向有帮助吗?


正如 @Kevin Peno 指出的那样,HTML5 不是 XML,尽管这最初让我感到不舒服,但我已经接受了它,并决定仅将 HTML5 视为最终输出格式,而不是有潜力的文档。通过 XML 工具重新使用和转换。

如果您希望走这条路,我的建议是通过保证 XML 有效的清理过程传递您的 HTML5 标记(我会想到 Tidy 等工具)。

您的另一个选择是重新考虑您的方法并将 HTML 视为最终输出格式。使用不同的标记语言来存储内容,甚至可能存储网站的结构。

例如,您可以将 Markdown 用于内容(轻松转换为 HTML)。如果您更愿意坚持使用 XML,也许可以定义您自己的 DSL,或者重复使用诸如简化文档手册。过去这对我来说效果很好。

然后利用 XSL 将 XML 混搭转换为 HTML5 或您喜欢的任何输出格式。

现在,要尝试直接回答您的问题,您肯定需要“整理” HTML5 标记,以确保它是有效的 XML,然后再使用 RelaxNG 或 XML Schema 等验证工具。至于您的 RNG 架构文件,我建议首先查找 XHTML 1.0 Strict .rng,然后仔细阅读 HTML5 规范并根据需要添加元素和属性。谷歌快速搜索出现了下列.

如果您在 RNG 和 XML Schema 之间做出选择,请选择 RelaxNG,这样可以省去一些麻烦。这是我的观点,但我已经广泛使用了这两种方法,并且 RelaxNG 更具人类可读性并且更易于使用!

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

在 PHP 中验证 XHTML5? 的相关文章

  • ajax 会增加还是降低安全性?

    我正在创建一个网站 到目前为止它是纯 PHP 的 我在想 既然很少有人没有启用 JavaScript 我想知道为什么 也许我应该将我的网站创建为一个完全 PHP 的网站 而不使用任何 AJAX 难道是我想错了 可以肯定的是 如果我实施一些
  • 如何在 Laravel Mix 中将公共路径更改为包含下划线的路径?

    Laravel 5 4 中引入了 Mix 来编译资产并维护资产管道 Mix 默认为您的公共目录被命名public 在许多情况下 包括我的 我的公共目录被称为其他名称 就我而言 是public html 如何更改资源编译到的公共目录 我尝试过
  • 通过纯 JavaScript 获取 div 的第 n 个子元素

    我有一个名为 myDiv 的 div 元素 我怎样才能得到 myDiv 的第n个孩子DOM https en wikipedia org wiki Document Object Model操纵 Markup function reveal
  • 如何使用额外标记输出 wp_list_categories

    我目前正在使用下面的脚本在无序列表中输出我的所有 WordPress 类别 如何获得带有额外标记的输出 ul ul 例如 ul li Category 1 rsaquo li li Category 2 rsaquo li ul 代替 ul
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • PHP URL 验证

    我知道有无数的线程问这个问题 但我一直无法找到一个可以帮助我解决这个问题的线程 我基本上试图解析大约 10 000 000 个 URL 的列表 确保它们根据以下标准有效 然后获取根域 URL 此列表包含您能想象到的几乎所有内容 包括类似的内
  • 使用 PHP 修剪字符串开头的任何零

    用户将在字段中填写与其帐户相关的数字 不幸的是 一些用户会在号码开头添加零来组成六位数字 例如 000123 001234 而其他用户则不会 例如 123 1234 我想 修剪 前面带有零前缀的用户的数字 因此如果用户输入 000123 它
  • WooCommerce 自定义产品类型选项不隐藏自定义产品选项卡

    我刚刚向我的 WC 管理产品页面添加了自定义产品类型选项 add filter product type options this filter product type options 99 1 public function filte
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 仅在 Chrome 上我收到此错误:Uncaught TypeError: Illegal constructor [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我在 Chrome 上加载 jQuery 时 我会收到此错误 Uncaught TypeError Illegal constr
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • 准备好的语句需要 0 个参数,给定 1 个参数..,使用 php 手册示例 [重复]

    这个问题在这里已经有答案了 我直接从 php 手册示例中获取了这个 它几乎与我需要的相同 但我仍然收到此错误 有人可以告诉我我错过了什么吗 stmt link gt prepare SELECT obitBody Photo FROM tn
  • PHP 用星号替换所有字符

    假设我有一个字符串形式的密码 password thisisaplaintextpassword 我怎样才能把它变成下面的样子 password 我想通过电子邮件向用户发送他们的帐户详细信息 但不想发送整个内容 Use 字符串重复 http
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • 如果选中复选框则显示 div

    我正在尝试构建类似 WordPress 选项的东西 用于在创建文章时切换字段可见性 我所构建的依赖于 click函数使用相应的字段名称切换父项 我想知道如果选中该复选框 执行此操作的最佳方法是什么 因为如果您选中一个框并重新加载页面 因为它
  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • 水平和垂直居中 div 位于页面中间,页眉和页脚粘在页面顶部和底部

    我正在尝试制作一个具有固定高度页眉和页脚的页面 页眉位于屏幕顶部 100 宽度 页脚位于底部 100 宽度 我想将一个具有可变高度内容的 div 居中放置在页眉和页脚之间的空间中 在下面的 jsfiddle 中 如果内容比空格短 它会起作用

随机推荐

  • JSOUP HTML 解析器

    有没有办法得到起始行号和列号 and 结束行号和列号元素 标签 我正在创建 HTML 编辑器 需要突出显示标签以根据给定的某些场景进行速度优化起始和结束行号和列号 不 不幸的是 目前 jsoup 无法做到这一点 目前 Jsoup 不跟踪行号
  • Facebook Connect 和相册

    我目前正在为模特 演员开发一个网站 此时我只是想确定我可以使用 Facebook Connect 做什么和不能做什么 我几乎没有使用 Facebook Connect 或 FQL 的经验 基本上将会有一个设施 用户可以上传他们的照片 我想知
  • 在Android中播放Vimeo视频,视频url包含iframe

    你好 我正在开发 Android 应用程序 我想在其中播放 vimeo 视频 我从 json 中的 Api 获得响应 并使用 webview 播放视频 并且播放效果很好 但是 webview 显示非常小 播放的视频也很小 问题是 我希望播放
  • Mysql更改默认引擎

    如何将mysql引擎改为MYISAM 现在我有 INNODB 的 mysql 但我想将引擎更改为 MYISAM 我必须做什么 CREATE TABLE classifieds category id int 11 NOT NULL AUTO
  • laravel新建数据时无法按类别保存计算数据

    模型花费时间 在 laravel 中创建新数据时 无法按类别保存计算数据 public static function findOrCreate plan id data fromDate Carbon now gt subDay gt s
  • Android主项目与库项目-如何在项目之间传递设置

    刚刚开始使用 Android 我正在尝试创建一个具有免费和付费版本的应用程序 我也是 Java 新手 但我成功地在 Eclipse 中创建了一个简单的工作应用程序 它由 2 个主要项目组成 一个是免费版本 一个是付费版本 我还有一个库项目
  • 如何获取字符串中所有出现 Ruby 正则表达式的匹配数据?

    我需要MatchData对于字符串中正则表达式的每次出现 这与中建议的扫描方法不同匹配正则表达式的所有出现 因为这只给了我一个字符串数组 我需要完整的 MatchData 以获取开始和结束信息等 input abc12def34ghijkl
  • 在数据库中存储时间 (hh:mm) 的最佳方法

    我想将时间存储在数据库表中 但只需要存储小时和分钟 我知道我可以只使用 DATETIME 并忽略日期的其他组成部分 但是在不存储超出我实际需要的信息的情况下执行此操作的最佳方法是什么 您可以将其存储为午夜过后分钟数的整数 eg 0 00 0
  • 如果我包含某个包,Flutter Android 应用程序会在启动时崩溃

    最近突然出现了一个问题 只需将依赖项包含在 pubspec yaml 中的 位置 中 例如 dependencies flutter sdk flutter location 1 2 0 lt culprit firebase auth 0
  • 最短的GAS ARM (linux) 程序?

    我曾考虑过学习汇编语言 并决定尝试一下 ARM 我决定使用 GNU 汇编器 主要是因为它可以在我的手机存储库中找到 这样如果我感到无聊 我可以在任何地方尝试汇编 无论如何 我在网上搜索过 但找不到任何有关如何正确退出 ARM Linux 二
  • Java - 为什么强制垃圾收集不释放内存

    我正在生成一个大型数据结构并将其写入硬盘 之后我想摆脱该对象 以减少内存消耗 我的问题是 在强制垃圾收集之后 已用内存量至少与垃圾收集之前一样高 我添加了一个我正在做的最小工作示例 DataStructure data new DateSt
  • 在华为开发者控制台中为华为应用添加关键字

    我需要为用户提供在华为应用程序库中搜索我的应用程序的能力 就像苹果在应用程序商店中的关键字一样 但我在华为开发者控制台中找不到与之等效的内容 华为提供多种广告类型来帮助您增加Android应用的下载量 您可以设置字词或短语 使您的广告与用户
  • 如何将一个表单的实例传递给另一个表单

    我有一个名为form1带有在运行时创建的控件 当我按下表单上的按钮时 另一个表单会加载 称为combat and form1被隐藏 因此只有 1 种形式 combat 可见 当我按下按钮时combat我想要我的form1形成所显示的 但是我
  • jQuery 方法不适用于事件处理程序中的“this”

    当我使用下面的方法时 我无法获取 jQuerythis隐藏该元素 purplePanda click function e this hide 我收到此错误 Uncaught TypeError this hide is not a fun
  • 参数通过 ByVal 传递给 VB.NET 函数并在那里进行操作

    在此 Microsoft 示例中 将 Double 数组传递给函数MultiplyMatricesSequential and MultiplyMatricesParallel 作为参数结果使用ByVal修饰符 http msdn micr
  • Flutter:忽略小部件上的触摸事件

    我希望在其他小部件之上有一个模糊的图像 但是 当我这样做时 我无法与它下面的小部件进行交互 Solution 您可以解决您的交互问题 无法与Widget在你的模糊图像下方 通过包围你的BackdropFilter与IgnorePointer
  • 如何在支持8位无符号整数的设备上合法显示DICOM 16无符号整数?

    我正在 iOS 上开发一个医疗应用程序 iOS 设备仅支持 GL UNSIGNED BYTE 和 GL LUMINANCE 或者通常仅支持每个组件 8 位 现在我有一些灰度图像是 16 位无符号整数 我想显示它们 我发现我们无法显示 16
  • 使用any()和all()检查列表是否包含一组值或另一组值

    我的代码是针对井字游戏并检查平局状态的 但我认为这个问题在一般意义上可能更有用 我有一个代表董事会的列表 它看起来像这样 board 1 2 3 4 5 6 7 8 9 当玩家移动时 他们移动的整数将被替换为他们的标记 x 或 o 我已经进
  • Spring Security 中拦截 url 模式的顺序

    在 appSecurity xml 我有这个 拦截 url 模式 users profile 访问 hasRole VIEW PROFILES 拦截url模式 用户 个人资料 编辑 访问 hasRole EDIT PROFILES 我有一个
  • 在 PHP 中验证 XHTML5?

    背景 I have made the decision to serve my website as application xhtml xml to anyone who will accept it I understand that