【发布时间】:2015-12-08 21:53:05
【问题描述】:
我有以下代码
private void getdata(String stringfromDate,String stringtoDate ) throws IOException {
StringBuilder retVal = new StringBuilder();
URL oracle = new URL("https://xxxxxxxxxxxxxxxx" + stringfromDate +"&ToDate=" + stringtoDate +"" );
BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream()));
String newLine = "\n";
String inputLine;
while ((inputLine = in.readLine()) != null) {
//System.out.println(inputLine);
retVal.append(inputLine).append(newLine);
}
in.close();
passSting(retVal);
}
private void passSting(StringBuilder retVal) {
Document doc = null;
try {
doc = loadXMLFromString(retVal.toString());//pull in the XML data into a new doc
System.out.println(doc);
} catch (Exception ex) {
Logger.getLogger(JavaApplication63.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static org.w3c.dom.Document loadXMLFromString(String xml) throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml));
return builder.parse(is);
}
我通过 retVal 传递给一个方法,以便我可以创建一个可以作为 XML 文档读取的文档,但是文档值似乎为 null 我做错了什么?这就是我在控制台窗口中得到的 [#document: null]
【问题讨论】:
-
您确定
StringBuilder中有内容吗?你在while中有一个打印语句,所以我假设你测试了那部分。 -
是的,如果我将鼠标悬停在 retVal.toString() 上方,我会看到预期的数据……只是文档显示为空……
-
如果在创建
builder之前添加factory.setNamespaceAware(true);怎么样。 -
@gonzo doc 仍然显示为 null,但是我已经询问了 doc,发现 fNodeValue 包含数据..即使 doc 本身显示为 null...这有什么用吗?
-
进一步询问显示 fNodeName 包含数据项标签。
标签: java xml stringbuilder doc