我有一個關於我正在做的XML提要和XSL轉換的問題。在HTML頁面的輸出Feed的幾個部分,我會在頁面上出現奇怪的字符(例如「)」)。奇怪的字符編碼字符(?)出現在飼料
在另外一個網站(即我沒有)這是使用相同的飼料,它沒有得到這些字符。
下面是我用搶,並返回轉化內容的代碼:
string xmlUrl = "http://feedurl.com/feed.xml";
string xmlData = new System.Net.WebClient().DownloadString(xmlUrl);
string xslUrl = "http://feedurl.com/transform.xsl";
XsltArgumentList xslArgs = new XsltArgumentList();
xslArgs.AddParam("type", "", "specifictype");
string resultText = Utils.XslTransform(xmlData, xslUrl, xslArgs);
return resultText;
而且我Utils.XslTransform
功能如下:
static public string XslTransform(string data, string xslurl)
{
TextReader textReader = new StringReader(data);
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Ignore;
XmlReader xmlReader = XmlReader.Create(textReader, settings);
XmlReader xslReader = new XmlTextReader(Uri.UnescapeDataString(xslurl));
XslCompiledTransform myXslT = new XslCompiledTransform();
myXslT.Load(xslReader);
StringBuilder sb = new StringBuilder();
using (TextWriter tw = new StringWriter(sb))
{
myXslT.Transform(xmlReader, new XsltArgumentList(), tw);
}
string transformedData = sb.ToString();
return transformedData;
}
我不是對字符編碼問題非常瞭解,我一直試圖將這個問題扼殺在一些時間,並可以使用任何可能的建議。我不確定是否需要改變WebClient下載文件的方式或XslTransform中奇怪的內容。
謝謝!
考慮將URL傳遞給XslCompiledTransform,而不是使用WebClient下載的字符串。 –
你看到問題的第一點在哪裏?它在'xmlData'中嗎?如果是,那麼問題很可能是WebClient正在使用的編碼。 –