Java で Dom Parser を使用して XML データを解析しようとしています。
次の XML データの解析に成功しました -
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
HEREのコードを使用しました。
しかし、次の XML データを解析しようとすると、
<body message="hello">
<mainData data1="XYZ" data2="ABC" data3="PQR"></mainData>
</body>
ヌルポインタ例外が発生しています。
どちらの XML も構造が異なります。最初のものは一般的ですが、2 番目のものはわかりません。
Javaを使用して2番目の構造でXMLを解析するのを手伝ってください。
私のコードは -
try
{
String strUrl = "http://someurl";
URL url = new URL(strUrl);
InputStream inStream = url.openStream();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inStream);
NodeList nList = doc.getElementsByTagName("body");
for (int i = 0; i < nList.getLength(); i++)
{
Node nNode = nList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nNode;
NodeList nListRoute = eElement.getElementsByTagName("mainData");
for (int j = 0; j < nListRoute.getLength(); j++)
{
Node nNodeRoute = nListRoute.item(j);
if (nNodeRoute.getNodeType() == Node.ELEMENT_NODE)
{
Element eElementRoute = (Element) nNodeRoute;
NodeList nlList = eElementRoute.getElementsByTagName("data1").item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
System.out.println("data1 : " + nValue.getNodeValue());
}
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
そして、私はエラーが発生しています -
java.lang.NullPointerException
行 " NodeList nlList = eElementRoute.getElementsByTagName("data1").item(0).getChildNodes(); "