初めまして、度重なる質問で申し訳ありません。私はすでに数時間試しましたが、PHPまたは他の言語では異なる解決策が見られますが、Rでは解決されません.
API を使用して、last.fm Web サイトからデータを取得しています。取得しようとしているデータを取得するには API キーが必要ですが、ここでは簡単に説明しますので、私の質問に答えていただければ幸いです。
ここに私の問題があります: ある時点で、データを取得するときに、リクエストを停止するエラーが発生します。一度スキップしましたが、何度も戻ってきます。私はいつも同じことを取得します: PCDATA 無効な Char 値 #
次に例を示します。
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;>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"
このテキストを解析しようとすると、次のエラーが表示されます。
doc = xmlParse(string, asText = TRUE)
PCDATA invalid Char value 28
Error: 1: PCDATA invalid Char value 28
これを実現している部分は、文字列の次の部分から来ていると思います。
<name>!B0A \0348E09;>2</name>\n
しかし、今は確信が持てません。
私が探しているのは、これらのソリューションの 1 つです。最初の理想的な状況ですが、他のソリューションのいずれかが私を幸せにします。
1 - R がこれらの無効な文字を受け取ることを許可する
2 - 無効な文字を削除し、解析を停止せずに続行します。
3 - 無効な文字を含む文字列をスキップし、解析を続行します
4 - 無効な文字を検索する関数を作成して、last.fm からデータを取得するときにそれを含めることができるようにします。
質問を理解し、私を助けてくれることを願っています。前もって感謝します