好吧,我正在使用StreamReader从流中读取数据。流内的数据不是xml,它可以是任何东西。编码CDATA元素的有效方法
基于输入StreamReader,我正在使用XmlTextWriter写入输出流。基本上,当所有事情都说完之后,输出流包含来自包含在父元素中包含的元素中的输入流的数据。
我的问题是双重的。数据以块的形式从输入流中读取,StreamReader类返回char []。如果输入流中的数据包含“]]>”,它需要跨两个CDATA元素进行拆分。首先,如何在char数组中搜索“]]>”?第二,因为我在阅读块,所以“]]>”子字符串可以分成两个块,所以我该如何解释?
我大概可以将char []转换为字符串,并对其进行搜索替换。这将解决我的第一个问题。在每次读取时,我还可以检查最后一个字符是否为“]”,以便在下一次读取时,如果前两个字符是“]>”,我将启动一个新的CDATA部分。
这似乎很难看,因为它涉及到将字符数组转换为字符串,这意味着要花时间复制数据,并消耗两倍的内存。有没有更高效的方法,既有速度又有记忆力?
我已经删除了我的答案,因为我决定我不知道XmlTextWriter如何工作。文件没有说我预期他们会。 – 2009-02-13 06:13:47