无法使用如此大的 URL 生成 XML 文件

2024-04-12

我想使用下面的代码生成 XML,但是当我包含大 URL 时它会出错。甚至 cdata 也不起作用:

$xml = new SimpleXMLElement('<xml/>');

for ($i = 1; $i <= 8; ++$i) {
    $track = $xml->addChild('track');
    $track->addChild('path', "data[");
    $track->addChild('title', "<![CDATA[http://r8---sn-5hn7sn7k.googlevideo.com/videoplayback?mt=1417417897&mv=m&ms=au&ip=2001:1af8:4700:a022:1::4ae9&itag=18&initcwndbps=4948750&mm=31&sver=3&id=o-AB1_DFOem6qVMtWki7uWj0CcIevyqEaY_OtwcbRPKZXT&ipbits=0&upn=IFgTkloUxQQ&expire=1417439567&fexp=902522,907259,922247,927622,932404,935694,941004,942810,943909,947209,948124,952302,952605,952901,953912,957103,957105,957201&key=yt5&sparams=dur,id,initcwndbps,ip,ipbits,itag,mm,ms,mv,source,upn,expire&source=youtube&signature=7266EE8B52AAB9E3C6DECBADDD112BDF00E85EFB.362737C47ECAE4D9E25E900E8C24483799B2A8F8&dur=1554.831&title=8+Stunning+Linguistic+Miracles+of+The+Holy+Quran+%7C+Kinetic+Typography]]>");
}

Header('Content-type: text/xml');
print($xml->asXML());

您不能使用 SimpleXML 添加 CDATA 部分,只能添加标准文本节点。但即使这样也有一个错误。文本不能包含实体(&...;)。同样的错误存在于DOMDocument::createElement and DOMNode::$nodeValue。不过,您可以使用 DOM 创建文档。

$dom = new DOMDocument();
$root = $dom->appendChild($dom->createElement('xml'));

for ($i = 1; $i <= 8; ++$i) {
    $track = $root->appendChild($dom->createElement('track'));
    $track
      ->appendChild($dom->createElement('path'))
      ->appendChild($dom->createTextNode('data['));
    $track
      ->appendChild($dom->createElement('title'))
      ->appendChild($dom->createCDATASection("http://r8---sn-5hn7sn7k.googlevideo.com/videoplayback?mt=1417417897&mv=m&ms=au&ip=2001:1af8:4700:a022:1::4ae9&itag=18&initcwndbps=4948750&mm=31&sver=3&id=o-AB1_DFOem6qVMtWki7uWj0CcIevyqEaY_OtwcbRPKZXT&ipbits=0&upn=IFgTkloUxQQ&expire=1417439567&fexp=902522,907259,922247,927622,932404,935694,941004,942810,943909,947209,948124,952302,952605,952901,953912,957103,957105,957201&key=yt5&sparams=dur,id,initcwndbps,ip,ipbits,itag,mm,ms,mv,source,upn,expire&source=youtube&signature=7266EE8B52AAB9E3C6DECBADDD112BDF00E85EFB.362737C47ECAE4D9E25E900E8C24483799B2A8F8&dur=1554.831&title=8+Stunning+Linguistic+Miracles+of+The+Holy+Quran+%7C+Kinetic+Typography"));
}

$dom->formatOutput = TRUE;
print($dom->saveXML());

您可以看到 DOM 文档有很多方法来创建不同的节点类型。节点有一些方法可以将新节点附加到它们。

这些方法返回节点,以便您可以嵌套它们。

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

无法使用如此大的 URL 生成 XML 文件 的相关文章

  • PHP 文件上传帮助

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

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • PHPExcel下载文件

    我想下载使用 PHPExcel 生成的 Excel 文件 我按照以下代码PHPExcel 强制下载问题 https stackoverflow com questions 26265108 phpexcel force download i
  • 在会话 cookie 中存储大量数据会产生什么影响?

    谁能解释一下在会话中存储大量数据的缺点或给我指出一些阅读材料 我也很感兴趣在会话中存储数据和从数据文件读取数据之间是否有任何区别 如果您在会话中存储大量数据 则输入 输出性能会下降 因为会有大量读取 写入 默认情况下 PHP 中的会话存储在
  • PHP解析xml文件错误

    我正在尝试使用 simpleXML 来获取数据http rates fxcm com RatesXML http rates fxcm com RatesXML Using simplexml load file 我有时会遇到错误 因为这个
  • cURL 错误 77:设置证书验证位置时出错:CAfile

    我正在使用 Firebase php SDKlink https firebase php readthedocs io en latest index html并在 Windows 10 上的 XAMPP 服务器上使用 laravel 最
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • strlen()==0 和empty()之间有区别吗?

    我正在查看其他人编写的一些表单验证代码 我看到了这个 strlen 0 当测试表单变量是否为空时 我使用empty 功能 一种方法比另一种方法更好吗 它们在功能上等效吗 strlen是获取字符串中的字符数 同时empty用于测试变量是否为空
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • 如何在Android中解析xml类型的HTTPResponse

    我有一个 Android 应用程序 我使用 POST 方法来获取响应 这是我的代码 HttpResponse httpResponse httpclient execute httppost HttpEntity resEntity htt
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩

随机推荐

  • 在 VB6 中什么时候必须将变量设置为“Nothing”?

    在我的一个 VB6 表单中 我创建了几个其他 Form 对象并将它们存储在成员变量中 Private m frm1 as MyForm Private m frm2 as MyForm Later Set m frm1 New MyForm
  • 如何一次“vagrant up”多个节点?

    我有一个定义了多个节点的 Vagrantfile 比如节点1 节点2 节点3 我想运行一个命令 vagrant up provision node1 node2 但这似乎在一个命令行中不可能 唯一的方法似乎是并行运行两个命令 vagrant
  • 多线程时 For 循环索引超出范围 ArgumentOutOfRangeException

    当我迭代时 我遇到了一些奇怪的行为dummyText List in the ThreadTest方法我得到索引超出范围异常 ArgumentOutOfRangeException 但是如果我删除线程并且只打印出文本 那么一切都会正常 这是
  • Azure 文件存储 SMB 列出目录中的文件速度很慢

    我们有一个通过 Azure 文件列出文件夹中文件的应用程序 当我们使用C 方法时 Directory GetFiles account file core windows net xyz 当有 2000 个文件时 大约需要一分钟 如果我们使
  • MPMoviePlayerController 取消全屏模式在 iOS 6 中不起作用

    The MPMoviePlayerController在装有 iOS 5 的 iPad 上运行良好 最初视频通过添加MPMoviePlayerController到某个帧的自身子视图 按全屏按钮MPMoviePlayerController
  • 如何记录 REST API?

    如何记录 REST API 不仅仅是资源的文档 而且实际上是请求中发送的数据是什么以及响应中发回的数据是什么 知道某些东西期望发送 XML 并返回 XML 是不够有用的 或 JASN 管他呢 如何记录请求中发送的数据和响应中发回的数据 到目
  • Realm Swift:如何捕获 RLMException?

    我以为我做得正确 let realm try Realm do try realm write realm add myObject catch print something went wrong 但我仍然遇到崩溃而不是打印语句 我对避免
  • 我怎样才能有不同的提交来进行合并和冲突解决

    我将开发分支合并到我的功能分支中 这导致在解决我提交和推送的分支后出现合并冲突 现在的问题是合并和冲突解决更改位于一次提交中 很难找到解决冲突的方法 当存在合并冲突时 如何才能有两个单独的提交 一个用于合并 另一个用于冲突修复 如果你真的想
  • Angularjs 未捕获错误:[$injector:unpr]

    我正在用java开发购物网站 我正在使用angularjs 我对这些文件有问题 DashboardControll js use strict var app angular module DashboardApp app controll
  • MLlib MatrixFactorizationModel suggestProducts(user, num) 在某些用户上失败

    我训练了一个MatrixFactorizationModel https spark apache org docs 1 3 0 api java org apache spark mllib recommendation MatrixFa
  • 在 JPA 查询中转义冒号字符“:”

    我正在尝试通过使用 字符的 JPA 运行本机查询 特定实例在查询中使用 MySQL 用户变量 SELECT foo bar baz rownum if id foo rownum 1 1 as rownum id foo as rep id
  • 在 View AngularJS 中使用服务

    我对 angularJS 服务有疑问 我有简单的服务 angular module mainApp services factory AuthService function http var currentUser null var au
  • 删除过多的 try-catch 块

    我正在重构一个由其他开发人员编写的中型 WinForms 应用程序 几乎每个类的每个方法都被一个try catch堵塞 99 的情况下 这些 catch 块仅记录异常或清理资源并返回错误状态 我认为很明显这个应用程序缺乏适当的异常处理机制
  • 以逗号分隔的标签输入字段

    我正在开发一个网络应用程序 允许用户通过标签发布内容 但问题是 如果标签被comma并且文本字段值仍然相同 只是用户的视图会有所不同 一个例子是 YouTube 或 StackOverflow 目前我不需要它来检查数据库或任何东西 Than
  • Java 8 从 Map 中的匹配值中提取所有键

    我对 Java8 比较陌生 我有一个场景 我需要从 Map 中检索与对象匹配的所有键 想知道是否有一种方法可以获取所有键而无需再次从列表中迭代它们 Person java private String firstName private S
  • 如何在 Android 上使用 GraphQL 和 Retrofit?

    我是 GraphQL 的新手 但我已经使用 Retrofit 一段时间了 它易于使用且快速 GraphQL 在传递数据的方式方面与 REST API 有很大不同 关于在 Android 上使用 GraphQL 的教程确实不多 我只能找到这个
  • 使用 numpy.genfromtxt 填充缺失值

    尽管前面的问题提出了建议 9999 作为 numpy genfromtxt 的缺失值 https stackoverflow com questions 12274709 9999 as missing value with numpy g
  • 将默认值传递给表值参数 - SQL Server

    我在我们的一个存储过程中使用表值参数 这是我使用的语法 districtlist NumericList readonly NumericList是用户定义的表类型 但是 根据要求 我需要将默认值传递给该表值参数 districtlist
  • Boost 单元测试链接错误——abi 不匹配?

    我正在尝试使用 boost 构建一个单元测试 但链接器抱怨缺少函数 拿这个骨架代码 define BOOST TEST DYN LINK define BOOST TEST MAIN include
  • 无法使用如此大的 URL 生成 XML 文件

    我想使用下面的代码生成 XML 但是当我包含大 URL 时它会出错 甚至 cdata 也不起作用 xml new SimpleXMLElement