DOM Parser:如何处理特殊字符

时间:2011-05-18 11:01:18

标签: parsing dom xml-parsing

我有一个Web服务(API),我将其传递给DOM解析器并提供解析结果

代码参考:

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> "上中断。请详细说明如何处理特殊字符。

3 个答案:

答案 0 :(得分:0)

尝试使用反斜杠转义这些字符:“\”

示例:元素内容中的"5\/7"

答案 1 :(得分:0)

  

正斜杠按原样有效   不需要进一步编码。

     

唯一保留的字符是:

     

> < & %

XML Entity for "/"?

如果解析器确实打破了这个(而不是其他某个字符),那么这就是一个错误。

您应该将>编码为XML中的&gt;

答案 2 :(得分:0)

你可以使用XPL购买,就像XML一样,除了它允许XML在文本元素中的“特殊字符”。如果您需要XML处理的全部功能,可以使用XPL解析器进行预处理。以下文章解释了在没有任何性能损失的情况下进行预处理(Java Concurrency)。 Artificial Intelligence, XML, and Java Concurrency