问题标签 [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 - 通过 xpath 表达式将 XML 文档快速拆分为 data.frames
我编写了一个函数来将(大型)异构 XML 文件拆分为数据帧,其中拆分是通过 xpath 表达式完成的。我所说的异质是指感兴趣的项目属于一组不同的“列”结构。但是,对于大型ish XML 文件,比如 50K 项和 5 种类型,代码似乎比我预期的更“缓慢”。
那么问题是:是否存在我错过的执行此操作的现有功能,如果没有,是否有明显的方法可以提高下面代码的速度?
这是我正在考虑的那种 XML 结构的最小示例:
目标是将其转换为N个数据帧,其中N是其中唯一值的数量//item/Type
(在解析时未知)。
这是我的实现:
最小示例的结果(每帧只有一行)是:
r - R rvest:找不到函数“xpath_element”
我试图简单地复制 的示例rvest::html_nodes()
,但遇到错误:
do.call(method, list(parsed_selector)) 中的错误:找不到函数“xpath_element”
如果我加载诸如httr
, xml2
,之类的包也会发生同样的情况selectr
。我似乎也有这些软件包的最新版本......
诸如xpath_element
,之类的函数xpath_combinedselector
位于哪些包中?我如何让它工作?请注意,我在 Ubuntu 16.04 上运行,因此该代码可能在其他平台上运行......
r - Extracting nodes by name
I am trying to parse an XML file with xml2. But I cannot for the life of me figure out how to do it by specifying the name.
This works:
-->
And I can extract by position both step-by-step and with xpath:
_
However my attemps to select by name are failing.
and
and
Can somehow point me to the solution that is somehow escaping me?
EDIT:
OK here is a data example. With that data what I want is
But selected by name.
r - 在 R 中解析非嵌套的 XML 标签
我正在尝试使用出色的xml2
R 库解析许多文档。例如,考虑以下 XML 文件:
其中包含许多<speech>
标签,这些标签是分开的,尽管没有嵌套在其中,但也有许多<minor-heading>
和<major-heading>
标签。我想将此文档处理为data.frame
具有以下结构的结果:
不幸的是,因为标签没有嵌套,我不知道该怎么做!我有成功恢复相关信息的代码(见下文),但将语音标签与其各自的主要标题匹配是我无法做到的。
我的直觉是,最好在标题标签处拆分 XML 文档,然后将每个文档作为单独的文档处理,但我在xml2
包中找不到可以让我这样做的函数!
任何帮助都会很棒。
到目前为止我已经到达的地方:
r - R: How to best extract two XML attributes from a node?
The following code extracts one attribute (or all) from an XML file:
Item looks like this:
Sample file can be viewed here: https://raw.githubusercontent.com/wardblonde/ODM-to-i2b2/master/odm/examples/CDISC_ODM_example_3.xml
Using pipes and xml_attr, what is the best way to extract both the Name
and DataType
attributes and have them rbinded?
Ideally it would be a single line of super efficient piped code. I can extract names and types and have 'data.frame(name=names,type=types)' but that seems not the best and most modern.
The result should be a tibble with columns name and data type.
r - 具有正确字符编码的 xml2::read_html 在 Ubuntu 上崩溃
xml2::read_html 在尝试使用正确的字符编码时会在 Ubuntu(但不是 Mac)上崩溃。
错误是:
doc_parse_raw 中的错误(x,编码 = 编码,base_url = base_url,as_html = as_html,:basic_string::_M_replace_aux
因为问题发生在 Ubuntu 而不是 Mac 上,所以尝试使用安装最新版本的 xml2 库
仍然有一个错误,虽然是一个不同的错误:
doc_parse_raw(x, encoding = encoding, base_url = base_url, as_html = as_html, 错误:由于输入错误,输入转换失败,字节 0xFB 0x7C 0xB7 0x51 [6003]
我不确定为什么传递正确的编码会使 libxlm2 崩溃。有什么想法可以做什么?
这是我的 Ubuntu sessionInfo():
r - xml2:在同一行中指定文本后抓取数组中的文本
我有一堆envelope
元素的 XML。每个内部都是一个数组。数组中的每一行都有 2 个元素。第一个是标识符,第二个是我要抓取的文本。我需要行的第一个值来识别正确的行,以便我可以获取正确的值。
在下面的示例中,我在用代码表示的行中有“食物” 610954
。我想抓住这段代码之后的 2 个元素(c('pizza', 'burger')
。同样有代码表示的“饮料” 605380
。我想抓住c('coke', 'pepsi')
。我怎样才能使用xml2包来做到这一点?
r - R:xml2 提取的节点比预期的多
我不明白为什么这段代码
匹配许多超出目标<div>
元素范围的 URL。
如果您查看目标页面的 HTML 源代码:
- 只有一个
<div>
符合我的查询。它从第 177 行开始。 <div>
停靠在 396 号线。- 然而,
html_nodes
上面代码中返回的许多 URL 都是从该行之外的节点中提取的,该<div>
.
注意:您可能会注意到,在 HTML 的第 242 行,有一个错误的</div
元素。但是,修复它似乎并不能解决问题。
我猜这个问题与xml2
(即libxml2
)如何解析代码有关。
还有其他想法吗?
r - xml - 即使元素文本丢失,也可以抓取子子子项并在子项内折叠
我有一个嵌套的 xml 数据集,如下所示,我正在尝试使用xml2和tidyverse包进行解析。有三个儿童信封。我想获取每个标签中的子标签和子标签的所有文本,<card-id>
并使用易于识别的分隔符将它们折叠起来,或者从中制作一个 data.frames 列表。<value>
<envelope>
;;;
MWE:这是数据:
期望的输出:
或者像这样的嵌套列表一样好(也许更好):
我想我可以as_list
在孩子身上使用,然后xml_find_all
用来创建一个 data.frames 列表,但是as_list
+lapply
不只攻击一个envelope
,而是在每次通过时都会攻击它们(我很高兴知道我错过了什么这个功能也是)。
我试过的
r - 将 Excel xml 文件读入 R
我正在尝试使用 xml2 来读取 Excel xml 文件,但我遇到了困难,因为我拥有的文件与 xml2 文档中用于示例的结构如此不同。我想从工作簿中读取其中一个工作表并将其用作数据框。
这个片段包括完整的结构,但只有一个单元格填充了一堆文本,而我要阅读的内容有 50,000 行数据。