【问题标题】:locate invalid character causing error in R xmlToDataFrame()在 R xmlToDataFrame() 中定位导致错误的无效字符
【发布时间】:2016-12-16 02:15:39
【问题描述】:

对于背景,我对 R 非常陌生,几乎没有使用 XML 文件的经验。

我使用 RSelenium 包编写了一个网络爬虫,它从 website 下载多个州和年份的 XML 文件,然后编写读取每个文件并将其附加到一个文件并导出 CSV 的代码。我的 webscraper 成功下载了我需要的所有文件,并且下一段代码能够成功读取除两个下载的 xml 文件之外的所有文件。

可以通过在此页面上选择以下选项来检索我无法读入 R 数据帧的第一个文件:http://www.slforms.universalservice.org/DRT/Default.aspx

  • 年份=2013
  • 州=PA
  • 点击“XML Feed”的单选按钮
  • 点击“选择数据点”复选框
  • 点击“选择所有数据点”复选框
  • 点击“构建数据文件”

我尝试使用 xmlToDataFrame 将生成的 XML 文件读入 R:

install.packages("XML")
require("XML")

data_table<-xmlToDataFrame("/users/datafile.xml")

当我这样做时,我得到一个错误:

xmlParseCharRef: invald xmlChar value 19
Error: 1: xmlParseCharRef: invalid xmlChar value 19

我看到的其他使用 xmlToDataFrame 的无效字符错误示例通常为有问题的字符提供两个坐标,但由于只给出了值“19”,我不确定如何定位有问题的字符。

一旦我找到无效字符,是否有办法直接更改 xml 文件的文本以转义无效字符,以便 xmlToDataFrame 能够读取更改后的文件?

【问题讨论】:

    标签: r xml xml-parsing escaping


    【解决方案1】:

    这行 XML 编码不好:

    31 to $26,604.98 to remove: the ineligible entity MASTERY CHARTER SCHOOLS &#x13;
    

    但该文档似乎还有其他编码问题。

    TSV 工作正常,因此您可能会考虑改用它。

    【讨论】:

    • 感谢您的及时答复!我最初选择下载 XML 文件是因为我在阅读 tsv 文件时遇到了麻烦。当我尝试时:test&lt;-read.table("N:\\My Documents\\Downloads\\Inquiry_10_8_2016_11_23_44.tsv",header=T, sep="\t") 我得到错误:Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : line 281 did not have 54 elements
    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2018-06-20
    • 1970-01-01
    相关资源
    最近更新 更多