r xml-parsing last.fm invalid-characters

PCDATA no válido Char en R



xml-parsing last.fm (0)

Antes que nada, lo siento si esta es una pregunta repetida. Intenté durante varias horas y veo soluciones diferentes para PHP u otros idiomas, pero no para R.

Estoy recuperando datos del sitio web de last.fm utilizando su API. Necesitas una clave API para recuperar los datos que intento obtener, pero lo simplificaré aquí y espero que puedas responder mi pregunta.

Este es mi problema: en cierto punto, cuando recupero los datos, encuentro un error que detiene mi solicitud. Me salté una vez pero vuelve una y otra vez. Siempre obtengo lo mismo: PCDATA valor de Char no válido

Aquí hay un ejemplo:

string = "<?xml version=/"1.0/" encoding=/"utf-8/"?>/n<lfm status=/"ok/">/n<results for=/"a/" xmlns:opensearch=/"http://a9.com/-/spec/opensearch/1.1//">/n<opensearch:Query role=/"request/" searchTerms=/"a/" startPage=/"1382/" />/n<opensearch:totalResults>212588</opensearch:totalResults>/n<opensearch:startIndex>1381</opensearch:startIndex>/n<opensearch:itemsPerPage>1</opensearch:itemsPerPage><artistmatches>/n<artist>/n <name>!B0A /0348E09;&gt;2</name>/n <listeners>1672</listeners>/n <mbid></mbid>/n <url>http://www.last.fm/music/!B0A+%1C8E09;%3E2</url>/n <streamable>0</streamable>/n <image size=/"small/">http://userserve-ak.last.fm/serve/34/88015017.png</image>/n <image size=/"medium/">http://userserve-ak.last.fm/serve/64/88015017.png</image>/n <image size=/"large/">http://userserve-ak.last.fm/serve/126/88015017.png</image>/n <image size=/"extralarge/">http://userserve-ak.last.fm/serve/252/88015017.png</image>/n <image size=/"mega/">http://userserve-ak.last.fm/serve/_/88015017/B0A+8E092+15286997.png</image>/n </artist></artistmatches>/n</results></lfm>/n"

Cuando intento analizar el texto, aparece el error:

doc = xmlParse(string, asText = TRUE) PCDATA invalid Char value 28 Error: 1: PCDATA invalid Char value 28

Creo que la parte que está haciendo que esto suceda proviene de esta parte de la cadena:

<name>!B0A /0348E09;&gt;2</name>/n

Pero no puedo estar seguro ahora.

Lo que estoy buscando es una de estas soluciones, ser la primera en la situación ideal, pero cualquiera de las otras me hará feliz:

1 - Permita que R reciba estos caracteres inválidos

2 - Elimine los caracteres inválidos y continúe con el análisis sin detenerse.

3 - Omita la cadena con los caracteres inválidos y continúe con el análisis

4 - Crear una función para encontrar los caracteres no válidos para poder incluir eso al recuperar los datos de last.fm

Espero que entiendas la pregunta y me ayudes con ella. Gracias por adelantado