编码XML字符串

时间:2017-07-26 14:22:29

标签: xml vbscript

我有一些文本可以保存到xml文件中。但是内部文本是一些XML不允许的符号(如unicode:0xb)。我怎么过滤它们?在VBScript方法中类似于HTMLEncode。

1 个答案:

答案 0 :(得分:1)

ASP有一个HTMLEncode方法,但普通的VBScript没有。您需要自己实现它,例如:

Function EncodeCharacter(m, p, s)
    EncodeCharacter = "&#" & Asc(m) & ";"
End Function

Function EncodeString(s)
    Set re = New RegExp
    re.Pattern = "[^a-zA-Z0-9 .:;!?/_-]"
    re.Global  = True

    EncodeString = re.Replace(s, GetRef("EncodeCharacter"))
End Function

str = ...
encoded = EncodeString(str)

上面的代码使用带有replacement function的正则表达式来替换特殊字符及其对应的数字实体。根据需要调整正则表达式,以便它涵盖您不想要替换的所有字符。