Проблема в R с выводом xml-разбора в Windows XP - взлом национального символа - PullRequest
1 голос
/ 21 сентября 2011

Мне интересно использовать R для интеллектуального анализа данных в исследованиях медиа.

Когда я pars xml (просматривая Google RSS) национальный символ (кириллица) ломается:

>xml <- xmlTreeParse(url, useInternalNodes = T)  
>xml  
<? xml version="1.0" encoding="UTF‑8"?>  
<rss version="2.0">  
<channel>  
<generator>NFE/1.0</generator>  
<title>югра OR ханты OR хмао – Новости Google</title>  
…  

МойСистема:

sessionInfo ()
R версия 2.13.1 (2011-07-08)

Platform: i386-pc‑mingw32/i386 (32-bit)  
locale:  
[1] LC_COLLATE=Russian_Russia.1251 LC_CTYPE=Russian_Russia.1251  
[3] LC_MONETARY=Russian_Russia.1251 LC_NUMERIC=C  
[5] LC_TIME=Russian_Russia.1251  

attached base packages:  
[1] stats graphics grDevices utils datasets methods base  

other attached packages:  
[1] XML_3.4-2.2 RCurl_1.6-10.1 bitops_1.0-4.1  

loaded via a namespace (and not attached):  
[1] tools_2.13.1  

Я пытаюсь использовать любые пользовательские параметры (localeToCharset(locale="ru_RU.UTF-8")) - без эффекта.

Я выполняю синтаксический анализ в Linux (Lubuntu 11.04) - нет проблем, вывод национального символа правильный.
Извините за мой английский.
Есть идеи?
Спасибо.

1 Ответ

0 голосов
/ 21 сентября 2011

Хорошо, у меня сработало следующее, не уверен, что это так:

url.tmp <- "http://news.google.ru/news?hl=ru&gl=ru&q="
symbol <- "быть OR жить"
number <- 10
url <- paste(url.tmp, symbol, "&output=rss", "&start=", 1, "&num=", number, sep = "") 
url <- URLencode(url)

По сути, я удалил enc2utf8 из вашего примера.

> xml <- xmlTreeParse(url, useInternalNodes = T, isURL=T)
> xml

Выход:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <generator>NFE/1.0</generator>
    <title>быть OR жить – Новости Google</title>
    <link>http://news.google.ru/news?gl=ru&amp;pz=1&amp;ned=ru_ru&amp;hl=ru&amp;num=10&amp;q=%D0%B1%D1%8B%D1%82%D1%8C+OR+%D0%B6%D0%B8%D1%82%D1%8C</link>
    <language>ru</language>
    <webMaster>news-feedback@google.com</webMaster>
    <copyright>&amp;copy;2011 Google</copyright>
    <pubDate>Wed, 21 Sep 2011 13:49:52 GMT+00:00</pubDate>
    <lastBuildDate>Wed, 21 Sep 2011 13:49:52 GMT+00:00</lastBuildDate>
    <image>
      <title>быть OR жить – Новости Google</title>
      <url>http://www.gstatic.com/news/img/logo/ru_ru/news.gif</url>
      <link>http://news.google.ru/news?gl=ru&amp;pz=1&amp;ned=ru_ru&amp;hl=ru&amp;num=10&amp;q=%D0%B1%D1%8B%D1%82%D1%8C+OR+%D0%B6%D0%B8%D1%82%D1%8C</link>
    </image>
    <item>
      <title>Взяточникам будут давать до 50 лет тюрьмы - Дни.Ру</title>
      <link>http://news.google.com/news/url?sa=t&amp;fd=R&amp;usg=AFQjCNGE1RZXvfqoSBuDU3EqSPeqJDRqDw&amp;url=http://www.dni.ru/redir/?source%3Ddni_picture_day%26id%3D219166%26dniurl%3Dpolit/2011/9/21/219166.html</link>
      <guid isPermaLink="false">tag:news.google.com,2005:cluster=http://www.dni.ru/redir/?source=dni_picture_day&amp;id=219166&amp;dniurl=polit/2011/9/21/219166.html</guid>
      <pubDate>Wed, 21 Sep 2011 12:54:00 GMT+00:00</pubDate>

Я запускаю R через плагин StatET для Eclipse.

> sessionInfo()
R version 2.13.1 (2011-07-08)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Russian_Russia.1251  LC_CTYPE=Russian_Russia.1251    LC_MONETARY=Russian_Russia.1251 LC_NUMERIC=C                    LC_TIME=Russian_Russia.1251    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] XML_3.4-2.2     quantmod_0.3-15 TTR_0.20-2      Defaults_1.1-1  xts_0.8-0       zoo_1.7-2       rj_0.5.5-4     

loaded via a namespace (and not attached):
[1] grid_2.13.1     lattice_0.19-30 tools_2.13.1   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...