问题标签 [domdocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
428 浏览

php - 升级到 PHP 5.2.6 后的问题

我在这里陷入困境。我的 PHP 代码曾经可以工作,但自从我升级到 PHP 5.2.6 后,我现在得到:

这是来源:

在网上做了一些研究后,我发现Zend扩展可能是原因。这是我的 Zend 设置的样子。

该程序使用 Zend 脚本语言引擎:Zend Engine v2.2.0,版权所有 (c) 1998-2008 Zend Technologies 和 ionCube PHP Loader v3.1.34,版权 (c) 2002-2009,由 ionCube Ltd. 和Zend Extension Manager v1.2.0,版权所有 (c) 2003-2007,由 Zend Technologies 和 Zend Optimizer v3.3.3,版权 (c) 1998-2007,由 Zend Technologies

我已经在几个新的 Windows 系统上测试了这段代码,但都失败了。这让我相信大多数(如果不是很多)网络主机可能使用与我所拥有的类似的设置。根据我所阅读的内容,常见的解决方案是禁用 Zend 或注释掉php.ini文件的特定区域。因为这是用于分发的脚本的一部分,所以我的大多数客户将无法直接访问,php.ini也没有访问权限来修改 Web 服务器设置,例如 Zend 扩展。

我如何在代码中解决这个问题?有解决方法吗?或者有没有使用的替代方法DOMDocument

0 投票
3 回答
2453 浏览

php - 可以将 HTML 内容添加到 SimpleXMLElement 节点

简单的问题。是否可以在SimpleXMLElement(或者事实上,DOMDocument )节点中添加一个 HTML 块,而无需将 HTML 数据自动转换为实体格式?

例如,使用以下代码片段(此处使用 DOMDocument,但 SimpleXMLElement 的行为完全相同):

输出是:

如果您查看源代码,您会看到:

... HTML 块自动转换为实体格式。

即使用 CDATA 包装块也无济于事,因为 CDATA 的尖括号也会被转换。

那么,有没有办法在不执行这种自动转换的情况下添加这样的 HTML 块?

谢谢,m^e

0 投票
2 回答
1407 浏览

php - Reddit RSS 提要在通过 HTTP 请求时返回较少的项目?

我正在尝试从包含 25 个项目的 RSS 提要中读取数据。当我通过 HTTP 请求 RSS 文件时,它说只有 20 个项目。

我也尝试过来自其他 subreddit 的 RSS 提要,结果相同。

0 投票
2 回答
3358 浏览

php - 为什么 DOMXPath 不起作用?

我一直在尝试编写一个 PHP 脚本来使用DOMXPath解析 XML 文档;但是,我似乎遗漏了一些东西,因为我的 XPath 查询都没有返回任何内容。所以我试图淡化我的脚本来尝试解析一个非常基本的 XML 文档,但这也不起作用。我基于这个 XPath 示例编写了这个脚本。

问题是我的 $result 的 var_dump总是返回如下内容:

...表明它什么也没找到。

0 投票
1 回答
572 浏览

php - 如何在php中取消嵌套列表

我有一个像这样的嵌套无序列表(简化版本/深度是可变的):

使用 PHP,有没有一种很好的方法可以在(对于这个例子)3 个列表中“分解”这个嵌套列表?

谢谢你的帮助

编辑 :

预期的输出将是:

0 投票
2 回答
760 浏览

php - 如何让 DOMDocument 对 ASCII 控制字符友好?

我正在解析的 HTML 文档包含一些 ASCII 控制代码。我注意到 PHP 的 DOMDocument 解析器在节点内找到 ASCII 控制字符时会截断文本节点,例如

Device Control 0x13

End of Medium 0x19

File Separator 0x1C

Group Separator 0x1D

这是错误还是功能?有没有办法让 DOMDocument 采取其他方式?我在 DOM 处理之前采取了删除这些字符的方法,但我想知道这是否是正确的解决方案。

0 投票
1 回答
253 浏览

php - 转储非 ASCII 字符时 DOMDocument 的不一致行为的解释是什么?

在使用 PHP和方法时,我注意到了不同的“转储”行为DOMDocument。这是一个转储版权符号 (©) 的简单示例。saveXML()saveHTML()

<?
$domDoc = new DOMDocument();
$domDoc->loadHTML("&copy;");
echo $domDoc->saveHTML();
echo $domDoc->saveXML();
echo $domDoc->saveXML($domDoc);
?>

三个转储产生三种不同的输出:

第一个输出字符串&copy;
第二个输出字符实体第三个输出版权符号 ( )&#xA9;
的 UTF8 2 字节码U+00A9

为什么输出不同?有没有办法可预测性控制使用哪种方法?

0 投票
1 回答
1182 浏览

php - 使用 XPath 和 DOMDocument 合并两个 XML 文档时出错

大约一年前,我编写了一个受 jQuery 启发的库,它允许您使用 PHP 的 XPath 和 DOMDocument 操作 DOM。我最近想清理它并将其作为一个开源项目发布。在过去的几天里,我一直在改进并实现更多 PHP 的原生 OO 功能。

无论如何,我想我会添加一个新方法,它允许您将单独的 XML 文档与当前文档合并。这里的问题是这个方法需要 2 个 XPath 表达式。第一个获取要合并到现有文档中的元素。第二个指定这些合并元素的目标路径。

该方法在从两个路径中获取匹配元素时效果很好,但是我在将外部元素导入当前 DOM 时遇到了问题。我不断收到可怕的“错误文档错误”消息。

我以为我知道我在做什么,但我想我错了。如果你看下面的代码,你可以看到我首先迭代当前文档的匹配元素,然后遍历外部文档的匹配元素。

在第二个嵌套循环中,我尝试将每个外部元素合并到当前文档中的目标路径中。

不确定我在这里做错了什么,因为我在附加之前明确将外部节点导入到当前文档中。

您可以在以下 Github 存储库中找到完整的库:

http://github.com/wilhelm-murdoch/DomQuery

哈普斯!!!

0 投票
2 回答
6831 浏览

php - 格式化使用 PHP 创建的 XML 文档 - DOMDocument

我正在尝试以可视方式格式化我的 XML 文件在输出时的外观。现在,如果您去这里查看源代码,您将看到文件的样子。

我拥有的创建文件的 PHP 是:(注意,$links_array 是一个 url 数组)

通过查看源代码可以看出,该文件不像我希望的那样可读。我有什么办法可以格式化节点吗?

谢谢,
列维

0 投票
2 回答
59108 浏览

soap - 使用经典 ASP 发送“应用程序/soap+xml”SOAP 请求

对此的任何帮助将不胜感激;我已经在这几天了。

以下是我到目前为止的代码;不幸的是,当我运行它时,我收到了 HTTP 415 错误;无法处理消息,因为内容类型为 'text/xml; charset=UTF-8' 不是预期的类型 'application/soap+xml; 字符集=utf-8'

我必须发送 application/soap+xml 的内容类型,因为这是 Web 服务允许的唯一类型;我必须用经典的 ASP 来做。

我尝试将“发送”行更改为“objRequest.send objXMLDoc.XML”,但这给了我一个HTTP 400 错误请求错误。