问题标签 [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.
r - 向文本元素添加空格
有没有办法为每个包含文本的元素添加空格?对于这个例子:
我想在使用之前html_text()
为每个文本元素添加一个尾随空格。我有另一个用例,我想html_text()
在文档层次结构中使用更高的位置。结果是多个文本组合在一个向量元素中。这使得无法推断相应部分的开始和结束。
r - 为什么 xpath 会再次找到排除的节点?
考虑这个页面:
如果我首先选择第一个n1
using class="a"
,我应该排除第二个n1
,这确实是真的:
但是,如果我们现在使用这个“子集”页面:
节点是如何1
“重新发现”的?
注意:我知道如何使用两个单独的 xpath 获得我想要的东西。这是一个关于为什么“子集”没有按预期工作的概念性问题。我的理解是b_nodes
应该完全排除第一个节点——b_nodes
对象甚至不应该知道该节点存在。
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。
编辑:评论建议
r - 使用R在XML中的同一节点内根据另一个属性中的值编辑属性的现有值
我有以下要解析的 XML。重复的属性名称使获得我想要的输出变得困难。
这个问题的一个明显的解决方案似乎是改变属性分数的值。
您如何根据季度值更改 score 值?例如:
我试过使用xml_replace
但没有成功。
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=""
,那么结果与原始代码没有变化。
r - R和xml2:即使节点丢失,如何读取不在子节点中的文本并读取信息
我使用R
它的包xml2
来解析html
文档。我提取了一个html
文件,如下所示:
我的目标是从文本中提取信息并将其转换为数据框,如下所示:
我尝试了以下代码:
不幸的是,label
,text_of_accent
没有type_of_accent
像我预期的那样被提取:
是否有可能只使用xml2
或我需要一些额外的工具来实现我的目标?至少可以提取文本片段label
吗?
r - 在R中解析包含带有“xml2”的特殊字符的标签
我正在使用 R 中的 xml2 包来解析我的 xml 文件。一切正常,除了这个标签,标签名称中有一个破折号。
XML 示例:
我正在使用这行代码来提取 prism:doi 节点内的文本(按预期工作):
然而,提取“citedby-count”值的相同代码确实返回“NA”而不是实际值。
我的猜测是,解析器与标签内的“-”混淆了。有没有办法避免这个问题?
r - 如何在不使用 xml2 R 包的循环的情况下更新 xml 属性
我有一个想要使用 R 的 xml2 包更新的 xml 对象。我通常需要做两件事:
- 更新节点内的文本
<c>{text}</c>
- 更新节点属性
<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
如果我提供一个值,它会使用该值更新整个节点集,但我需要对每个节点属性进行不同的更新。因此,我使用了一个循环,但我想用一个矢量化的等价物替换它来产生这个:
r - 使用 R 中的 xml2 包调用 xml_read 时如何检查 html 状态代码?
TL;DR:见标题
细节:
我目前正在查询一个有点古怪的 XML API。
有时,当您发出请求时,您会返回所请求数据的 XML 文件。其他时候,您会返回一个 XML 文件,其中包含一条消息,说明您的请求已排队。
在继续之前,我曾考虑过使用 xpath 查询来查看我期望的数据是否存在,但完全有可能一个有效的、正确提供的查询会导致一个空集,所以这有时会产生假阴性。
一个可取之处是服务器在排队请求时将返回不同的 HTTP 状态代码。但是,我不知道如何检查结果xml_read
以判断代码是什么,并且文档似乎没有提供任何指导。
r - R下载的源代码和网站源代码的区别
我正在抓取一个网站以提取有关某些产品的信息,但我遇到了价格问题。我的代码如下:
我在原始页面的源代码中检查了这些信息,我在其中找到了这个:
我感兴趣的信息是 17.213 美元,但是当我尝试使用 R 下载源代码时,我得到以下信息:
也就是说,我获得了 \t\t\t\t\t\t\t 而不是 $17.213。
我将非常感谢您的帮助。