【发布时间】:2017-01-05 18:10:53
【问题描述】:
我在解析以下 XML 文件时遇到问题:
<DataContent>
+金砖+++ %C3%9Clkeleri+Esnek+EYF%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C016178%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B-0%2C52 %26lt%3B%2Ftd%26gt%3B++ %26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B+++%26lt%3Btd%26gt%3BEmeklilik+Fonlar%C4%B1+%28BES%29+-+++Karma+%26amp%3B+Esnek+Fonlar %26lt%3B%2Ftd%26gt%3B+++ %26lt%3Btd%26gt%3B+%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B+%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr %26gt%3B+++%26lt%3Btd%26gt%3BAllianz+Ya%C5%9Fam+ve+Em。 +%C4%B0kinci+++Esnek+EYF%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C050458%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B- 0%2C61%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++ %26lt%3Btr%26gt%3B+++%26lt%3Btd%26gt%3BAnadolu+Hayat+Em.+B%C3%BCy%C3%BC.+Ama.+++%C4%B0ki.+Es.+EYF%26lt %3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C043109%26lt%3B%2Ftd%26gt%3B+++ %26lt%3Btd%26gt%3B-0%2C20%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B+++%26lt%3Btd%26gt%3BFiba+Em .+ve+Hay.+%C4%B0kinci+++标准+EYF%26lt%3B%2Ftd%26gt%3B+++ %26lt%3Btd%26gt%3B0%2C011639%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B-0%2C16%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt %3B++%26lt%3Btr%26gt%3B+++%26lt%3Btd%26gt%3BVak%C4%B1f+Em。 +Gelir+Am.+2.+Esnek+++EYF%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C020458%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt %3B-0%2C15%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B +++%26lt%3Btd%26gt%3BNN+Hay.+Em.+Kamu+Bor%C3%A7lanma+++Ara%C3%A7lar%C4%B1+标准+EYF%26lt%3B%2Ftd%26gt% 3B+++%26lt%3Btd%26gt%3B0%2C033045%26lt%3B%2Ftd%26gt%3B+++ %26lt%3Btd%26gt%3B-0%2C02%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B+++%26lt%3Btd%26gt%3BEmeklilik+Fonlar %C4%B1+%28BES%29+-+++ 凯特%C4%B1l%C4%B1m+Fonlar%C4%B1%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B+%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt% 3B+%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B+++ %26lt%3Btd%26gt%3BKat%C4%B1l%C4%B1m+Em.+ve+Hay.+++Alter.%C4%B0kinci+Esnek%28D%C3%B6viz%29+EYF%26lt%3B% 2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C011757%26lt%3B%2Ftd%26gt%3B+++ %26lt%3Btd%26gt%3B-0%2C31%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B+++%26lt%3Btd%26gt%3BAsya+Em .+ve+Hay.+B%C3%BCy.+Am.+Kat. +++埃斯内克+EYF%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C013884%26lt%3B%2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B-0%2C14%26lt %3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B++%26lt%3Btr%26gt%3B+++ %26lt%3Btd%26gt%3BAsya+Em.+ve+Hay.+B%C3%BCy.+Ama%C3%A7l%C4%B1+++Gr.+Kat.+Es.+EYF%26lt%3B %2Ftd%26gt%3B+++%26lt%3Btd%26gt%3B0%2C013993%26lt%3B%2Ftd%26gt%3B+++ %26lt%3Btd%26gt%3B-0%2C07%26lt%3B%2Ftd%26gt%3B++%26lt%3B%2Ftr%26gt%3B%26lt%3B%2Ftable%26gt%3B++%28Not%3A+分析+i %C3%A7erikleri+fonbul。 com%E2%80%98dan+al%C4%B1nm%C4%B1%C5%9Ft%C4%B1r.
</DataContent>
输出应该是:
Bric Ülkeleri Esnek EYF 0,016178 -0,52
Emeklilik Fonları (BES) -Karma & Esnek Fonlar
安联 Yaşam ve Em。
İkinci Esnek EYF 0,050458 -0,61
.干草。 İkinci Standart EYF
0,011639 -0,16 Vakıf Em。
格利尔是。 2. 埃斯内克 EYF 0,020458 -0,15
NN干草。嗯。 Kamu Borçlanma Araçları Standart EYF 0,033045
我的 XSL 样式表是:
<msxsl:script language="JScript" implements-prefix="user">
function decode(s)
{
var encodedHTML;
var decodedString = decodeURIComponent(s.replace(/\+/g, ' '));
decodedString = decodedString.replace(/&lt;/g,'<');
decodedString = decodedString.replace(/&gt;/g,'>');
decodedString = decodedString.replace(/&amp;/g,'&');
decodedString = decodedString.replace(/&apos;/g,'YY');
decodedString = decodedString.replace(/&quot;/g,'"');
decodedString = decodedString.replace(/&#39;/g,String.fromCharCode(39));
decodedString = decodedString.replace(/<br>/g,'<br/>');
decodedString = '<html>' + decodedString + '</html>';
decodedString = unescape(decodedString)
decodedString = decodedString.replace(/<style([\s\S]*?)<\/style>/gi, '');
decodedString = decodedString.replace(/<script([\s\S]*?)<\/script>/gi, '');
decodedString = decodedString.replace(/<\/div>/ig, '\n');
decodedString = decodedString.replace(/<\/li>/ig, '\n');
decodedString = decodedString.replace(/<li>/ig, ' * ');
decodedString = decodedString.replace(/<\/ul>/ig, '\n');
decodedString = decodedString.replace(/<\/p>/ig, '\n\n');
decodedString = decodedString.replace(/<br\s*[\/]?>/gi, "\n");
decodedString = decodedString.replace(/<[^>]+>/ig, '');
return decodedString;
}
<xsl:template match="/">
<xsl:value-of select="user:decode(string(//DataContent))" />
</xsl:template>
当我解析 XML 文档时,输出仍然包含“&” ...我需要用“&”替换,我缺少什么?...我使用的是 XSL 1.0 版,转换引擎是 MSXML 或 .Net 1.0
【问题讨论】:
-
你的输出方法是什么?
-
我的输出方式是 XML @michael.hor257k