2011-05-18 64 views
0

我有一個Web服務(API),並給它的解析結果DOM解析器:如何處理這我傳遞給DOM解析器特殊charecters

碼參考:

public void parseContent(){ 
    URL url = new URL(http://My_Webservice_API); 
    URLConnection con = url.openConnection(); 
    con.setConnectTimeout(5000); 
    con.setReadTimeout(5000); 
    Document doc = null; 
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
    doc = docBuilder.parse(new InputSource(con.getInputStream())); 
    doc.getDocumentElement().normalize(); 
    NodeList TC = doc.getElementsByTagName("root"); 
    m_cTotalNo = TC.getLength(); 
    System.out.println("Total no of elements : " + m_cTotalNo); 
} 

每一件事工作正常。解析器在"<element>5>7</element> "上中斷。請說明如何處理特殊字符。

+0

這是什麼語言? – 2011-05-18 11:14:49

+0

不知道,它讓我想起Java,它看起來很可怕*。不是語法本身,而是你爲了完成一項非常基本的任務而必須跳過的無數循環。 – bart 2011-05-18 12:26:13

回答

0

正斜槓是有效的值並 不需要進一步的編碼"5\/7"

惟一保留的字符是:

><&%

XML Entity for "/"?

如果解析器這個真的符(而不是其他一些字符),然後就是一個錯誤。

您應該使用XML將>編碼爲&gt;

0

嘗試用一個反斜槓這些字符:「\」

例如:在你的元素的內容

+2

反斜槓不能在XML中轉義。 – 2011-05-18 11:17:30

0

您可以使用XPL進行購買,XPL就像XML一樣,只是它允許在文本元素中使用XML的「特殊字符」。如果您需要XML處理的全部功能,則可以使用XPL解析器進行預處理。以下文章解釋了執行預處理時沒有任何性能損失(Java Concurrency)。 Artificial Intelligence, XML, and Java Concurrency