问题标签 [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 投票
4 回答
4080 浏览

php - 来自DOMDocument的nodeValue在PHP中返回奇怪的字符

所以我正在尝试解析 HTML 页面并<p>使用get_elements_by_tag_name('p');

问题是当我使用时$element->nodeValue,它会返回奇怪的字符。文档首先$html使用 curl 加载,然后将其加载到 DOMDocument 中。

我确定它与字符集有关。

这是一个响应示例:“aujourd’hui”。

提前致谢。

0 投票
3 回答
1016 浏览

php - PHP:加载 HTML 文件而不整理我的代码

我正在使用 loadhtml 函数 ( http://php.net/manual/en/domdocument.loadhtml.phpt ) 加载外部 .html 文件。当我加载它时,它会“整理”我的代码,这是我不想要的。我不想要一个完整的 HTML 文档,我只想要 .html 中的 html 片段,并且我不希望 loadhtml 文件尝试使其成为有效的 html,因为我不希望它这样做。

有没有更好的功能来加载 .html 文件,这样它就不会整理代码?!

0 投票
4 回答
8647 浏览

php - PHP DOMDocument-> loadXML 与 XML 包含 &/less/greater?

我正在尝试解析 TEXTDATA 中包含字符 & < 和 > 的 XML 字符串。通常,这些字符应该是 htmlencoded,但在我的情况下,它们不是,所以我收到以下消息:

警告:DOMDocument::loadXML() [function.loadXML]:在实体中解析属性名称时出错...警告:DOMDocument::loadXML() [function.loadXML]:找不到开始标记的结尾...

我可以使用 str_replace 对所有 & 进行编码,但如果我使用 < 或 > 进行编码,我也会对有效的 XML 标记进行编码。

有谁知道这个问题的解决方法?

谢谢!

0 投票
1 回答
363 浏览

php - 使用 DOMDocument 元素中的 strtotime 转换日期

在使用 curl 获取 HTML 文件后,我正在使用 DOMDocument 解析一些数据。代码看起来像这样

我无法$var使用 strtotime 转换为时间戳。我不知道为什么,我知道$cols->item(1)->nodeValue返回了我想要的值,我什至尝试将其分解并内爆到另一个变量中,但我仍然无法使用 strtotime 将其转换为时间戳。我也直接测试了值

strtotime('11 Jan 2010');

它确实返回了一个时间戳,那么,我该怎么办?

0 投票
1 回答
387 浏览

php - 将 rss 提要传递给 php domDocument 对象时出错

谁能指出我正确的方向

我正在使用 curl 来取回 google picasa api 提要。这一切都很好,通过自动化和数据获取,但现在我想在 try'n 中扩展一点,从我的网站添加、更新标签、图片、地理信息。

如何以某种方式将我用 curl 返回的提要传递给 domDocument?

这没有用

如果我直接回显它,我会在 FF 中获得一个 RSS 页面

会给出一个 xml 解析语法错误吗?

此外,如果有人有任何链接可以使用 google-api 进行与 ZEND 无关的 PUT、DELETE、UPDATE 操作,但使用不同的 PHP 方法、curl 或其他方法,那就太好了。(更容易理解的代码)

谢谢,理查德

0 投票
3 回答
772 浏览

php - 将 HTML 导入 DOMDocument 或 SimpleXML 时删除内联元素?

我有一个外部 HTML 源,我想抓取它并转换为本地 XML 文件或添加到 MySQL DB。

外部源大多是规范化的和(有点)语义的,所以我需要做的就是使用XPATH来获取所有td内容或所有li内容等。问题是这些项目有时会使用<strong>or <b>or<i>标记来设置我需要的元素的样式。

这在技术上是语义化的,因为重点是要强调特定文本,并且开发人员可能希望使用不是浏览器默认的 CSS。

问题是我试图抓取的实际内容被认为是这个内联元素的子元素,因此 PHP 扩展喜欢simplexmlorDOMDocument并将DOMNode它们视为这样。例如:

将导致:

显然上面的内容并不是simplexml返回的内容,但上面反映了普遍的问题。

那么有没有一种方法,使用已经内置在 DOMDocument 中的参数或使用更复杂的 XPath 查询来获取td元素的内容,其中任何子项(如果有的话)被剥离其后代状态并将所有内容视为文本查询的元素?

现在,我唯一的解决方案是:

a) 有一个foreach检查每个结果的循环,例如:

b)<strong>在将 HTML 字符串导入任何预构建类(如 simplexml 或 DOMDocument)之前,使用正则表达式从 HTML 字符串中去除任何标签。

0 投票
3 回答
1109 浏览

php - 错误php domDocument xml解析

有谁知道我如何将这个 xml 放入 domDocument 中?

现在,它会抛出一个错误,说它缺少顶级元素。我看到的是 feed 是顶级元素,所以这对我来说是个谜。这只发生在我运行它时抛出 domDocument 而不是当我直接回显它时。xml 验证器也没有给出错误。

这是xml:

这不起作用

感谢广告,理查德

0 投票
2 回答
7695 浏览

php - PHP:查找 XML 节点并插入子节点

我有一个具有以下结构的 xml 文档:

我希望能够搜索节点值,例如 id 字段的值 1。然后,一旦找到该节点,选择父节点,即 < item > 并在其中插入一个新子节点。

我知道使用 dom 文档的概念,但不知道在这种情况下如何做。

0 投票
5 回答
9551 浏览

php - PHP DOMDocument 用 HTML 字符串替换 DOMElement 子元素

使用 PHP,我试图获取从 WYSIWYG 编辑器传递的 HTML 字符串,并用新的 HTML 替换预加载的 HTML 文档中元素的子元素。

到目前为止,我正在加载标识要通过 ID 更改的元素的文档,但是将 HTML 转换为可以放置在 DOMElement 中的内容的过程让我望而却步。

0 投票
2 回答
7335 浏览

php - 在 PHP 中从 DOMNode 创建 DOMDocument

我从某个来源获得了一个 XML 字符串。我创建了一个 DOMDocument 对象并将 XML 字符串加载到其中(使用 DOMDocument::loadXML())。然后我使用各种方法(例如 DOMXPath)浏览 XML 文档,直到找到我想要的节点(当然是 DOMNode)。

这个节点有一堆后代,我想获取整个节点(及其后代)并从中创建一个新的 DOMDocument 对象。我不知道该怎么做;我尝试创建一个新的 DOMDocument 并使用 DOMDocument::importNode(),但这似乎只有在 DOMDocument 中已经有一个主文档节点时才有效,在这种情况下,它将导入的节点作为主文档节点的子节点附加,这不是我想要的——我希望导入的节点成为 DOMDocument 主节点。

也许有一种更简单的方法可以做到这一点(即一种更简单的方法来提取我想要转换为自己的文档的原始 XML 部分),但我不知道。我对 DOMDocument 比较陌生,尽管我使用过 SimpleXMLElement 足以让我感到恼火。