【问题标题】:Prevent adding first line when using htmlParse() from 'XML' package使用“XML”包中的 htmlParse() 时防止添加第一行
【发布时间】:2015-08-09 15:48:43
【问题描述】:

我在对 XHTML 文档执行 htmlParse() 时遇到问题。

当它作为“externalptr”加载到 R 中时,我可以看到在文件顶部添加了一行:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

我不想让这一行出现,因为它破坏了我的应用程序。我想在 htmlParse() 函数中删除它,而不必为我拥有的每个 XHTML 手动删除这一行。

有什么建议吗?我曾尝试更改传递给函数htmlParse()的一些参数,但此时尝试使用后,我没有找到。

如果有帮助,这里是我解析的 XHTML 的第一行:

<?xml version="1.0" encoding="utf-8" ?>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="es">
<head>
<meta charset="utf-8" />

【问题讨论】:

  • 您需要&lt;?xml version ...&gt; 行吗?如果没有,请使用xmlRoot(doc)
  • 感谢您的回答。但它也打破了它。它是从 epub 中提取的文件,如果我删除该行,它就无法在我的 iPad 的 iBooks 中加载。还没有尝试过安卓等其他平台。
  • 我们真的可以使用更多的代码和数据来提供帮助。您如何提取生成的 HTML?如果是saveXML,为什么不直接用gsub替换第一行(虽然saveXML默认应该加上&lt;xml…前缀。
  • 谢谢大家。最后,你们俩都帮助我找到了解决方案。我尝试使用xmlRoot(),然后使用带有该前缀的saveXML() 保存,最后出现的问题是编码错误,因为我使用的是西里尔字母和拉丁字母混合。尝试在 Windows 下更改编码但没有成功。终于在 Linux 下工作了。
  • 酷。您应该添加您所做的作为答案。它会帮助其他人,您可以在几天内接受答案。

标签: html xml r xml-parsing


【解决方案1】:

我尝试使用xmlRoot(),然后使用saveXML() 保存,包括作为参数的前缀&lt;?xml version="1.0" encoding="utf-8" ?&gt;

还有一个编码问题,但那是另一回事了。在 Windows 下不行,在 Ubuntu 下终于可以了。

谢谢大家。

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 2011-09-21
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2014-02-08
    • 2012-07-27
    • 1970-01-01
    相关资源
    最近更新 更多