我通過bcb抓取網頁的資訊頁面,其中用戶名一欄有的時候會出現<>,這個時候就會造成xml的語法不正確,程式就無法進行下去,請問有什么方法可以解決這個問題嗎?
<?xml version='1.0' encoding='GBK'?>
<DTHOUSE>
<USER>KSUSER1<NJ> </USER>
<TEMP>1270 </TEMP>
<HUMI>30 </HUMI>
</DTHOUSE>
在讀取USER時,由于USER里因為有<NJ>,由于其沒有與之對應的</>,所以讀取xml就會出錯了,有沒有什么方法可以解決這個問題啊?
uj5u.com熱心網友回復:
<NJ>把他替換成一個字串abc,決議完了再替換回來uj5u.com熱心網友回復:
關鍵這個詞不是固定的,有的時候是<NJ>有的時候可能是<其它的任何內容>uj5u.com熱心網友回復:
str= StringReplace(str, "<NJ>", "abc", TReplaceFlags() << rfReplaceAll);
uj5u.com熱心網友回復:
如果只是固定的詞我是知道的,但用戶那邊的是不固定的,有的時候是個ID號,有的時候是簡稱。所以很不確定。直接替換肯定是不行的。
uj5u.com熱心網友回復:
那用StringList當做文本讀取,str=list[2].Trim();
str.delete(1,)//洗掉第一個<
str.pos("<");取到第二個<的位置,
然后截取處理,
list[2]=str;
再保存成xml檔案決議行不
uj5u.com熱心網友回復:
直接替換或洗掉單個是可以,但穩定性還是有點差,假如名字中包括多個<>怎么辦?比如
<USER>KSUSER1<<NJ> </USER>
uj5u.com熱心網友回復:
存盤的時候能不能直接替換了這種特殊字符的話,最好是按照下方的幾個字符進行替換。(為什么這樣說?看上邊的兩點問題)
< < 小于號
> > 大于號
& & 和
' ' 單引號
" " 雙引號
uj5u.com熱心網友回復:
資料是別人的,不是自己的資料。所以沒有辦法控制,現在只有用土辦法,pos+substring來定位截取后替換了。如果可以判斷XML的語法正確于否,索性我就跳過這個記錄了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148761.html
標籤:基礎類
下一篇:關于C語言程式,求大神幫忙解答
