问题标签 [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 回答
335 浏览

r - xml2: xml_text() 根据是否手动运行返回不同的值

我目前正在从事一个项目,我将文本挖掘应用于大量 xml 文件。我使用 xml2 包来处理 xml 和 stringr 包来处理大多数文本挖掘任务。

我遇到了一个奇怪的问题。一些 xml 文档包含搞砸功能的奇怪空格字符,因此我需要先将这些空格字符替换为普通空格字符。为此,我将 xml 文档中的所有节点分开,提取文本,更改它,然后将更改后的字符串分配回节点,如下所示:xml_text(node) <- str_replace_all(xml_text(node), "[:space:]", " "),这在更改空格字符方面是成功的。这是我的代码的简化版本:

通常这可以正常工作,但在某些情况下会出现奇怪的问题,并且通过 xml_text() 提取的文本也包含来自其他节点的文本。您可以通过运行上面的代码看到这一点。当第一个 browser() 语句触发时,选择剩余的代码直到第二个 browser() 语句(第 13-18 行)并手动运行它。对象“tree”将是一个长度为 1 的列表,因为 xml_find_all() 函数找到了名为“dossiernr”的节点(节点集“data”中的第三个节点),因为该节点内的文本是“ExampleText” . 您可以通过在控制台中输入来验证这一点xml_text(data[[3]]),它等于xml_text(tree[[1]]). 这就是它应该如何工作的方式。

但是,如果您在第一个浏览器语句之后单击“继续”并自动运行其余代码,当您到达第二个浏览器语句时,“树”将是一个长度为 0 的列表。如果您然后键入xml_text(data[[3]]),结果是节点内的文本已替换为“ExampleTextAnotherPieceOfExampleText”,而不仅仅是“ExampleText”。另一个节点(名为“titel”的节点)内的文本被附加到它。

因此,出于某种原因,此代码的行为会有所不同,具体取决于我是手动运行还是自动运行。谁能帮我理解为什么会发生这种情况,以及如何解决这种行为?提前致谢。

0 投票
0 回答
183 浏览

r - 尝试在 Shiny Server 中解析 xml 文档时出现段错误

问候堆栈溢出社区!

我正在尝试使用 Shiny Server 和 xml2 包解析上传的 xml 文档,但我不断收到段错误(内存未映射)。如果我在闪亮的应用程序中定义一个 xml 对象并使用 xml_text 函数,没有问题。在 Shiny 上本地运行时,没有问题。在使用 XML 包而不是 xml2 包时,我也看到了同样的错误——这让我相信 xml 文件上传过程发生了一些事情,导致闪亮的服务器无法正确映射/解析。我确信有一个简单的解决方法,但我束手无策。任何帮助表示赞赏 - 谢谢!

每次都会导致错误的简化闪亮应用程序:

进入 linux 服务器时的错误日志:

在 Shiny 应用程序的服务器端定义 xml 文档时没有错误

0 投票
1 回答
153 浏览

r - 将XML提取到R中的数据框

通过使用httr包的 POST 请求,我以以下格式返回 XML:-

我可以使用此处提供的两个功能在数据框中获取“报告”部分:-

在每个终端节点内,有多个与特定船舶相关的报告,其属性在终端节点中给出。

目前,其中的列x是:

如何将船名作为列添加到此数据框中?我可以使用以下方法提取名称属性:-

B但不知道如何将其作为变量包含在数据框中。请提供一些帮助。

0 投票
1 回答
227 浏览

r - R xml2从xbrl文件中提取元素

有人可以帮我理解为什么我无法从这个 xml 文件中提取节点/元素吗?从技术上讲,它是一个 xbrl 文件,但我希望 R xml2 库能够正常工作。

读入文件。第三个元素或节点似乎是单元。此代码按预期工作:

但是,我无法让这段代码工作:

使用此方法搜索其他元素按预期工作:

0 投票
1 回答
697 浏览

r - 从xml提取数据到R数据框

我对 R 中的包相当陌生XMLxml2我正在努力将数据从 xml 提取到数据框中。

来自 xml 文件的示例数据

这是我迄今为止所做的没有任何成功!该脚本运行没有任何错误,但它无法提取任何数据并Null在最后返回值。

预先感谢您的帮助。PS 很抱歉之前发布了重复的问题。

0 投票
2 回答
51 浏览

r - 如何仅使用 R 获取链接

如何从上面仅获取链接和 id ^

所需的输出:

0 投票
1 回答
27 浏览

r - 如何在 R 中使用 xml 解析 url 列表以获取“Link”和“id”

我有一个 url 列表,想只抓取“link”和“id”。我试过 xml_attr(x, "link) 和 xml_attr(x, "id") 但它似乎不适用于列表。

0 投票
2 回答
54 浏览

r - 如何从 R 中的列表创建列表列?

使用上面的数据框,我想从 xml 字符串中提取所有路径元素 d 节点并将它们作为列表存储在同一数据框中,但我得到 Column nodesmust be length 1(组大小),而不是 7

mutate 语句中使用的管道确实返回一个列表

我可以省略“rowwise()”,但这只是期望长度为 2 而不是 1。

我在这里想念什么?

0 投票
0 回答
154 浏览

r - R:如何优化 xml 到 data.frame 解析以提高性能

使用下面的代码将 OIOIUBL 发票从 XML 转换为 RI 中的数据框(示例 XML 文件位于更下方的链接中)。

当迭代 323.859 个文件时,XML 到数据帧的解析需要 64 分钟。从下面的代码如何优化?使用 Python 执行相同的任务大约需要 6 分钟(抱歉无法共享 Python 代码)。

我知道 R 不擅长在内存中移动大量数据。但是 58 分钟的执行时间差异可以归因于这个或我缺乏编程技能吗?

示例文件链接:https ://1drv.ms/u/s!Am4CDwbz-dfchPZKhf9RQPSfnKcLeg

0 投票
1 回答
279 浏览

r - 从许多 XML 文件在 R 中创建数据框

我正在尝试使用瑞典选举统计数据检索一些 xml 数据,并在其中创建一个 R 数据框,但我对 xml 文件不太熟悉,无法获取我想要的信息。我已经看到了一些关于如何从许多 XML 文件创建数据框的其他问题,但它们的结构比我正在使用的数据更简单。

数据作为包含许多 XML 文件的压缩文件夹发布。可以通过以下R代码读取:

该文件夹包含 290 个城市中每个城市的文件(具有 4 位数字代码的文件)和每种选举类型,其中文件名中的最后一个字母表示选举类型(R=国民议会,L=县议会,K=市政委员会) . 它还包含 3 个 XML 文件,用于三种选举类型中的每一种的总结果。带有市政数据的 XML 文件具有以下结构(为清楚起见,删除了行):

现在,我希望每个文件都能获取所有VALDISTRIKT节点及以下节点内的数据并创建一个数据框。我不确定如何最好地构建这样的数据框,但以下结构就足够了,其中GROUP包含 GILTIGA 中的 PARTI、OGILTIGA 中的 TEXT 以及 ÖVRIGA_GILTIGA 中的 ÖVRIGA_GILTIGA。如果可能的话,我还想将 VALDELTAGANDE 中的 PROCENT 和 PROCENT_FG_VAL 添加为变量(一个 VALDISTRIKT 中的每一行具有相同的信息)。

应该从 290 个文件中的每个 VALDISTRIKT 中检索此信息,该文件的名称为 4 位并以 R 结尾。我想我应该遍历这些文件,或者更确切地说使用map_df?

我知道这个问题有很多要问的问题,如果我没有对 XML 文件的某些部分使用正确的术语,我很抱歉,但是如果你能给我一些关于如何从xml 文件放入数据框中,或者我可以在其中阅读有关如何执行此操作的更多信息,将不胜感激。

更新

我已经成功地向前走了几步。对于一个文件,我可以使用以下代码将所有信息放入两个单独的数据框中,其中顶部包含有关该地区的数据,下面包含选举结果。我现在只需要找到一种将两者结合起来并调整代码以读取所有文件的方法。

一切顺利,R