好吧,我正在使用StreamReader從流中讀取數據。流內的數據不是xml,它可以是任何東西。編碼CDATA元素的有效方法
基於輸入StreamReader,我正在使用XmlTextWriter寫入輸出流。基本上,當所有事情都說完之後,輸出流包含來自包含在父元素中包含的元素中的輸入流的數據。
我的問題是雙重的。數據以塊的形式從輸入流中讀取,StreamReader類返回char []。如果輸入流中的數據包含「]]>」,它需要跨兩個CDATA元素進行拆分。首先,如何在char數組中搜索「]]>」?第二,因爲我在閱讀塊,所以「]]>」子字符串可以分成兩個塊,所以我該如何解釋?
我大概可以將char []轉換爲字符串,並對其進行搜索替換。這將解決我的第一個問題。在每次讀取時,我還可以檢查最後一個字符是否爲「]」,以便在下一次讀取時,如果前兩個字符是「]>」,我將啓動一個新的CDATA部分。
這似乎很難看,因爲它涉及到將字符數組轉換爲字符串,這意味着要花時間複製數據,並消耗兩倍的內存。有沒有更高效的方法,既有速度又有記憶力?
我已經刪除了我的答案,因爲我決定我不知道XmlTextWriter如何工作。文件沒有說我預期他們會。 – 2009-02-13 06:13:47