1

xml からすべての名前空間を削除する方法を次に示します。しかし、それは私にとってはうまくいきません。壊れた xml フィードが表示されることがあるためです。例えば:

<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress.com" -->
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<channel>
  <title>sabri ?lker - WordPress.com Search</title>
  <link>http://tr.search.wordpress.com/?q=sabri+%C3%BClker&#038;page=2&#038;t=comment&#038;s=date</link>
  <description>sabri ?lker - WordPress.com Search</description>
  <pubDate>Fri, 04 Jan 2013 08:58:41 +0000</pubDate>
  <language>tr</language>
  <image><url>http://s.wordpress.com/i/buttonw-com.png</url><width>224</width><height>58</height><title>WordPress.com</title><link>http://wordpress.com/</link></image>
  <generator>http://search.wordpress.com/</generator>
  <atom:link rel="self" type="application/rss+xml" href="http://tr.search.wordpress.com/?q=sabri+%C3%BClker&#038;page=2&#038;t=comment&#038;s=date&amp;f=feed" />
  <atom:link rel="search" type="application/opensearchdescription+xml" href="http://en.search.wordpress.com/opensearch.xml" title="WordPress.com" />
  <opensearch:totalResults>10</opensearch:totalResults><opensearch:startIndex>11</opensearch:startIndex><opensearch:itemsPerPage>10</opensearch:itemsPerPage><opensearch:Query role="request" searchTerms="sabri ?lker startPage=\"2" /></channel>
</rss>

私の例外は、「名前は「2」文字、16 進値 0x32 で始めることはできません。17 行目、位置 227」です。結果に。では、この問題を解決するにはどうすればよいでしょうか。

4

1 に答える 1

0

その理由は、不正なsearchTerms属性にあると思います。

searchTerms="sabri ?lker startPage=\"2"  

&quot;の使用方法が間違っていると引用されています。\ "の代わりに。すべての\"を&quot;に置き換えるだけです。

string input = ..; // your xml
string processedInput = input.Replace("\\\"", "&quot;");

// then feed this into your xml parser.

これで問題は解決するはずですが、もちろん、間違ったxml入力をサニタイズする一般的な方法ではありません。 HTML、XHTML、およびXMLをサニタイズできるhttp://tidyfornet.sourceforge.net/を参照してください。

于 2013-01-04T09:37:57.353 に答える