由於xml文件中的空格,我正面臨一個問題。我想從xml讀取數據,但由於節點之間的空間,我面臨各種問題。由於XML文件中的空格而無法讀取XML
Ex。
If a node has 4 childs, due to the spaces it shows 9 childs to the node. So when I try to display node values in table, some columns without heading and without data are also created.
When I removed these spaces I read my file successfully without any problem.
那麼如何解決這樣的問題?因爲每當我讀取多個xml文件時,我無法親自從文件中刪除空格。因此,從每個文件中刪除空格將是一件繁瑣的工作。
Document doc;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(fp);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("parameter");
nodeName = name;
for (int temp = 0; temp < nList.getLength();temp++)
{
Node nNode = (Node) nList.item(temp);
Element eElement = (Element) nNode;
String upname1 = getTagValue("name", eElement);
System.out.println(nodeName+" UP: "+upname1);
if(upname1.equals(nodeName))
{
NodeList pvalList = eElement.getElementsByTagName("paramvalues");
for(int l=0; l< pvalList.getLength(); l++)
{
Node pNode = (Node) pvalList.item(l);
NodeList valList = pNode.getChildNodes();
for(int j=0; j<valList.getLength(); j++)
{
Node valNode = (Node) valList.item(j);
if(valNode.getNodeName().equals("value"))
{
NamedNodeMap att = valNode.getAttributes();
for(int s=0; s<att.getLength(); s++)
{
Node n1 = att.item(s);
System.out.println("len: "+att.getLength());
if(n1.getNodeName().equals("default"))
def = n1.getNodeValue();
if(n1.getNodeName().equals("actualvalue"))
aval = n1.getNodeValue();
}
}
}
}
}
}
我知道這是一個奇怪的問題,但它在完成我的工作時變得惱人。
PLZ幫助..謝謝..
你能告訴你的問題的Java代碼? – 2012-04-04 09:35:16
這可能是因爲你的代碼沒有檢查Node是否是'Element'的一個實例。您可能需要過濾掉'文本節點'。這很簡單,但你需要顯示一些代碼:) – laher 2012-04-04 09:37:59
1.在解析XML數據之前,先嚐試和「normalize()」。 2.請貼一些代碼! – 2012-04-04 09:41:12