factory.setNamespaceAware(true) 使用需要謹慎

解析XML的時候,如果將Namespace打開,則在解析生成document的時候,會查詢裡面是否有Schema,查詢xmln。

如果沒有還好,如果有的話,但是鏈接失效了,那麼,就會返回很糟糕的數據。

 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // do not setNamespace Aware = true unless the Schema is exist! //factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(is);

 

另外沒有找到好的方法通過xpath讀取到一個 NodeSet = =

 

這個還需要好好想想誒。。

 

暫時是這麼處理的:

 

int nodeLength = nodes.getLength(); // here is to set the number of elements in SLAStatus // assume that, every SLAStatus contains the same number of Children. int numOfElements = nodeLength/4; for (int i = 0; i < numOfElements; i++) { SLAStatusModel slasm = new SLAStatusModel(); String tmpValues[] = new String[4]; for(int j=0; j<4; j++) { String nodeValue = nodes.item(i*4+j).getChildNodes().item(0).getNodeValue(); tmpValues[j] = nodeValue; } slasm.setDegreeOfFulfillment(tmpValues[0]); slasm.setSLA_Template_ID(tmpValues[1]); slasm.setSLAID(tmpValues[2]); slasm.setTimestamp(tmpValues[3]); slaList.add(slasm); }

你可能感兴趣的:(factory.setNamespaceAware(true) 使用需要謹慎)