2011-08-04 40 views
1

我存儲在XML文件中的數據, 在我來存儲它由特殊字符像& 我用來代替&和xml &放大器的URL中的節點之一顯示沒有錯誤,但是當我做了SAX解析字符串值在節點內返回的字符串是&,在xml中存儲url的正確方法?

我猜測我存儲url的方式是不正確的。

在xml中存儲url的正確方法是什麼?

目前,我作爲存儲,

<param>http://www.example.com?param1=abc&amp;v=1</param> 

XML沒有錯誤,但SAX解析器將不會返回整個URL。

編輯:我在&安培在url後分號,我第一次錯過了它。

解決方案:這不符合XML的問題,但我的方式在XMLHandler處理XML,
我是用新的String(CH,開始位置,長度);
現在更改爲stringBuilder();

回答

2

你的XML是正確的(現在你已經添加的分號),所以您的使用SAX API必須是錯誤的。

可能看到下面的答案:Sax parsing and encoding

+0

它的工作,謝謝:) 4分鐘後,我會標記答案是正確的:) – sat

2

您需要&amp後分號(;):

<param>http://www.example.com?param1=abc&amp;v=1</param> 

編輯:好了,現在這已經澄清了一點,我認爲這個問題是SAX不必返回整個字符串在一個單獨的characters()調用。有關如何解決此問題的更多信息,請參閱this問題。

+0

對不起,我錯過了; ,我已經更新了這個問題。我在URL中有分號。 – sat

+0

@sat:那麼,在這種情況下,你的SAX解析器應該返回整個字符串。 * SAX解析器返回什麼? –

+0

它返回我v = 1與上面的網址被解析在SAX – sat

0

如果ampv是PARAM則:

<param>http://www.example.com?param1=abc&amp;ampv=1</param> 

否則,如果v是PARAM:

<param>http://www.example.com?param1=abc&amp;v=1</param> 
相關問題