XML を含む文字列を、ブラウザで表示できるものに変換しようとしています。そのために、文字列を次の関数に渡します。
Function HTMLDecode(sText)
Dim regEx
Dim matches
Dim match
sText = Replace(sText, Chr(34), """)
sText = Replace(sText, Chr(60), "<")
sText = Replace(sText, Chr(62), ">")
sText = Replace(sText, Chr(38), "&")
sText = Replace(sText, Chr(32), " ")
Set regEx= New RegExp
With regEx
.Pattern = "&#(\d+);" 'Match html unicode escapes
.Global = True
End With
Set matches = regEx.Execute(sText)
'Iterate over matches
For Each match in matches
'For each unicode match, replace the whole match, with the ChrW of the digits.
sText = Replace(sText, match.Value, ChrW(match.SubMatches(0)))
Next
HTMLDecode = sText
End Function
ただし、次のように呼び出すと:
response.write HTMLDecode(strResponse)
変換が行われますが、これはブラウザに表示されるものです:
<?xml version="1.0"? >
それよりも
<xml version="1.0"? >
IE、FF、Chromeで発生するので、それは私のコードに違いないと思います-何かアイデアはありますか?