我有一个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> "
上中断。请详细说明如何处理特殊字符。
答案 0 :(得分:0)
尝试使用反斜杠转义这些字符:“\”
示例:元素内容中的"5\/7"
答案 1 :(得分:0)
正斜杠按原样有效 不需要进一步编码。
唯一保留的字符是:
>
<
&
%
如果解析器确实打破了这个(而不是其他某个字符),那么这就是一个错误。
您应该将>
编码为XML中的>
。
答案 2 :(得分:0)
你可以使用XPL购买,就像XML一样,除了它允许XML在文本元素中的“特殊字符”。如果您需要XML处理的全部功能,可以使用XPL解析器进行预处理。以下文章解释了在没有任何性能损失的情况下进行预处理(Java Concurrency)。 Artificial Intelligence, XML, and Java Concurrency