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コードを表示することができますか? –
これはおそらく、あなたのコードがNodeが 'Element'のインスタンスであるかどうかをチェックしないためです。おそらく、「テキストノード」を除外する必要があります。それはかなり簡単ですが、いくつかのコードを表示する必要があります:) – laher
1. XMLデータを解析する前に 'normalize()'しようとしてください。 2.いくつかのコードを貼り付けてください! –