问题标签 [xml2]

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 回答
812 浏览

r - 向文本元素添加空格

有没有办法为每个包含文本的元素添加空格?对于这个例子:

我想在使用之前html_text()为每个文本元素添加一个尾随空格。我有另一个用例,我想html_text()在文档层次结构中使用更高的位置。结果是多个文本组合在一个向量元素中。这使得无法推断相应部分的开始和结束。

0 投票
2 回答
124 浏览

r - 为什么 xpath 会再次找到排除的节点?

考虑这个页面:

如果我首先选择第一个n1using class="a",我应该排除第二个n1,这确实是真的:

但是,如果我们现在使用这个“子集”页面:

节点是如何1“重新发现”的?

注意:我知道如何使用两个单独的 xpath 获得我想要的东西。这是一个关于为什么“子集”没有按预期工作的概念性问题。我的理解是b_nodes应该完全排除第一个节点——b_nodes对象甚至不应该知道该节点存在。

0 投票
1 回答
1633 浏览

r - 如何将网页中的 HTML 列表读入 R

考虑一个有 4 个或更多列表<li>html 元素的网站。例如这样的网站:https ://www.cprd.com/bibliography/bibliography.html

使用xml2(或其他方法,但xml2首选管道),将列表提取为字符向量的最佳方法是什么?

输出应该是<li>网站上的列表列表。(每年有一份清单)

第一个列表的第一项应该等于“评估降糖药物发起者之间的通道偏差:一项英国队列研究。Ankarfeldt MZ、Thorsted BL、Groenwold RH、Adalsteinsson E、Ali MS、Klungel OH。临床流行病学。2017;9:19–30。

编辑:评论建议

0 投票
1 回答
39 浏览

r - 使用R在XML中的同一节点内根据另一个属性中的值编辑属性的现有值

我有以下要解析的 XML。重复的属性名称使获得我想要的输出变得困难。

这个问题的一个明显的解决方案似乎是改变属性分数的值。

您如何根据季度值更改 score 值?例如:

我试过使用xml_replace但没有成功。

0 投票
1 回答
475 浏览

r - R - 使用 rvest 用空格替换 xml 标签

我正在使用 xml2 和 rvest 在 R 中读取 XML 文件。XML 具有以下结构(不包括标题)。我想提取两者之间的所有文本,<w:p></w:p>但首先我想将所有文本都转换<w:br/>为空格。

当我使用以下代码时(使用完全合法的 xml)

结果是:

但是换行符<w:br/>刚刚消失,最后的感叹号和谢谢这个词之间没有空格。

在实际应用程序中,我正在读取 XML 文件,而不是字符串(使用该read_xml函数),因此这不是gsub我正在寻找的简单解决方案。或者也许是因为这是唯一的解决办法。但我想知道的是,如何使用 rvest 和 xml2 将特定标签转换为空白?

更新

因此,建议normalize-space在另一个答案中将该功能用作 xpath。

但是,这不会产生所需的结果,因为文本在每个标签上都被拆分<w:r><w:t>因此现在引入了额外的空格。请注意,在前两个元素中,“.docx”中有一个空格,第二个元素中,“readOffice”中引入了空格。

我知道空格是由于我使用的,collapse=" "但如果我使用collapse="",那么结果与原始代码没有变化。

0 投票
1 回答
2292 浏览

r - R和xml2:即使节点丢失,如何读取不在子节点中的文本并读取信息

我使用R它的包xml2来解析html文档。我提取了一个html文件,如下所示:

我的目标是从文本中提取信息并将其转换为数据框,如下所示:

我尝试了以下代码:

不幸的是,label,text_of_accent没有type_of_accent像我预期的那样被提取:

是否有可能只使用xml2或我需要一些额外的工具来实现我的目标?至少可以提取文本片段label吗?

0 投票
3 回答
320 浏览

r - 在R中解析包含带有“xml2”的特殊字符的标签

我正在使用 R 中的 xml2 包来解析我的 xml 文件。一切正常,除了这个标签,标签名称中有一个破折号。

XML 示例:

我正在使用这行代码来提取 prism:doi 节点内的文本(按预期工作):

然而,提取“citedby-count”值的相同代码确实返回“NA”而不是实际值。

我的猜测是,解析器与标签内的“-”混淆了。有没有办法避免这个问题?

0 投票
1 回答
950 浏览

r - 如何在不使用 xml2 R 包的循环的情况下更新 xml 属性

我有一个想要使用 R 的 xml2 包更新的 xml 对象。我通常需要做两件事:

  1. 更新节点内的文本<c>{text}</c>
  2. 更新节点属性<c name={text}/>

我想避免循环遍历 xml 结构,因为这比识别节点集并立即为其分配整个值向量要慢得多。

我们擅长#1

#2 不好

当我尝试xml_attr(c_nodes, "name") <- df$disp_name[match(c_db_names, df$db_name)]时,我收到以下错误:

Error in node_set_attr(x$node, name = attr, nsMap = ns, value) : expecting a single value

如果我提供一个值,它会使用该值更新整个节点集,但我需要对每个节点属性进行不同的更新。因此,我使用了一个循环,但我想用一个矢量化的等价物替换它来产生这个:

0 投票
1 回答
121 浏览

r - 使用 R 中的 xml2 包调用 xml_read 时如何检查 html 状态代码?

TL;DR:见标题

细节:

我目前正在查询一个有点古怪的 XML API。

有时,当您发出请求时,您会返回所请求数据的 XML 文件。其他时候,您会返回一个 XML 文件,其中包含一条消息,说明您的请求已排队。

在继续之前,我曾考虑过使用 xpath 查询来查看我期望的数据是否存在,但完全有可能一个有效的、正确提供的查询会导致一个空集,所以这有时会产生假阴性。

一个可取之处是服务器在排队请求时将返回不同的 HTTP 状态代码。但是,我不知道如何检查结果xml_read以判断代码是什么,并且文档似乎没有提供任何指导。

0 投票
1 回答
125 浏览

r - R下载的源代码和网站源代码的区别

我正在抓取一个网站以提取有关某些产品的信息,但我遇到了价格问题。我的代码如下:

我在原始页面的源代码中检查了这些信息,我在其中找到了这个:

我感兴趣的信息是 17.213 美元,但是当我尝试使用 R 下载源代码时,我得到以下信息:

也就是说,我获得了 \t\t\t\t\t\t\t 而不是 $17.213。

我将非常感谢您的帮助。