我有一个XML流,其中包含特殊字符,如'存储在一个CString对象。除了替换流中的单个字符以转换这些特殊字符之外,是否还有其他方法?转换XML流中的特定字符
0
A
回答
0
我坦率地没有看到另一个选项。
0
如果可以,请在编写器中安装过滤器。这使您可以通过字符写入流char,并在遇到它们时替换特殊字符(从而不必分配第二个字符串对象)。
尝试尽可能多地输出尽可能多的字符串,因为在循环中为每个字符调用write()代价很高。相反,使用此伪代码:
int start = 0;
for (int i=0; i<str.length(); i++) {
char c = str.getChar(i);
String emit = null;
switch (c) {
case '<': emit = "<"; break;
case '>': emit = ">"; break;
case '\'': emit = "'"; break;
case '"': emit = """; break;
}
if (emit != null) {
write(str,start,i);
start = i;
write(emit);
}
}
if (start != str.length()) {
write(str);
}
在通常情况下,循环会遍历字符串一次(这是快),一旦调用write()。
如果您无法在编写器中安装过滤器,则可以使用相同的代码来过滤字符串。在常见情况下,您只需返回输入字符串。在if (emit != null)
中,您可以分配一个新副本。但是,因为这只会在字符串中有特殊字符时才会发生,这比为每个字符串创建一个副本要便宜得多。
3
需要转义字符只有“<> &。
但我会建议使用标准XML库。 这不仅将采取逃避的照顾,但很多其他问题(编码,实体,验证等)
相关问题
- 1. 将字符串转换为java中的XML输入流
- 2. 转换字符串到流
- 3. 如何让特殊的XML字符在flex中未转换?
- 4. 如何从HTML中的XML文档转换html特殊字符
- 5. 将特定字符转换为int
- 6. 将字符串中特定字符转换为大写
- 7. 字符串到Xml转换
- 8. Telnet流的字节到字符转换
- 9. 在AJAX中转义XML特殊字符
- 10. 如何将特定字符串转换为特定的int
- 11. 特殊字符在将数据转换为xml时被替换
- 12. PHP:特殊字符转换
- 13. xmltextwriter转换特殊字符
- 14. Unicode特殊字符转换
- 15. 特殊字符转换字符串
- 16. 如何替换XML字符串中特定节点的值?
- 17. 替换特定的字符
- 18. 替换字符串中特定字符之间的特定字符
- 19. PHP的XML DOM转换特殊字符来YY;
- 20. Xml中的特殊字符
- 21. XML中的特殊字符
- 22. 将特定的字符串值转换为Pandas中的特定数值
- 23. 将特定的HTML结构转换为特定的XML结构
- 24. 将所有Unicode字符转换为特定字符
- 25. 应该只在UTF-8 XML中转义特定字符吗?
- 26. 在rails中转换特殊字符
- 27. 将NSDate转换为SWIFT中特定时区的字符串
- 28. 转换XML字符串来的XElement
- 29. ASCII到XML的字符集转换
- 30. 转换XML字符串的NSMutableArray
转换为什么? – 2009-02-11 07:44:10
例如撇号需要转换为' – Naveen 2009-02-11 07:45:51