【发布时间】:2021-12-08 06:49:01
【问题描述】:
我有一个很大的 XML,由于内存不足,我无法在 R 中完全解析。我只想提取一些特定的列。我发现其他人问过类似的问题:
How to read large (~20 GB) xml file in R? Storing specific XML node values with R's xmlEventParse
我无法让它与我的数据一起工作,它运行,但没有返回数据。我确实尝试将建议的解决方案调整为我的 XML,但它仍然不起作用。可能是我缺乏XML知识。下面是我的 XML 数据示例,其中 cl, clssc, clp, clpssc, primclp 是列。如何在不先解析整个文档的情况下仅提取 cl 和 clssc?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<abc:abc xmlns:abc="http://abc/abc" xsi:schemaLocation="http://abc/abc lala_20Q2.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<chcp>
<cl>2000000</cl>
<clssc>10934</clssc>
<clp>200000</clp>
<clpssc>10934</clpssc>
<primclp>Y</primclp>
</chcp>
<chcp>
<cl>2000000</cl>
<clssc>10934</clssc>
<clp>200000</clp>
<clpssc>10934</clpssc>
<primclp>Y</primclp>
</chcp>
<chcp>
<cl>2000000</cl>
<clssc>10934</clssc>
<clp>2000000</clp>
<clpssc>10934</clpssc>
<primclp>Y</primclp>
</chcp>
</abc:abc>
【问题讨论】:
-
如果您能提供您的解决方案,但我们可以一起尝试修复它,这将是有帮助的。重要的是,实现必须具有流式传输功能(例如 xslt 3.0) - 但我想,链接问题的答案已经满足了这一点。
-
顺便说一句,为什么要走这么大的路(XML解析巨大的XML)-通过grep的简单过滤步骤也应该可以解决问题(如果XML打印得很漂亮,这意味着它有换行符每个元素),还是?
-
@AydinK。 “grep”是什么意思?确实它打印得很漂亮,但是如果使用模式匹配,我仍然需要将整个文件加载到 R 中,即 >20gb。还是?
-
将grep from bash 放入另一个文件可能更简单,而不是专门将其全部加载到 R 中?
-
@runr bash 对我来说是新事物,所以对我来说,这听起来并不容易。不过我会看看的。