XML初心者です。JavaでXMLを読み込もうとしていますが、途中で階層を下に降りられず目的の処理ができません。
デバッグを付けたままで失礼しますけれども、try1.61の次に進まず、NullPointerExceptionが出ます。
dcNodeがnullであることが考えられます。その原因ですがdeNodeの一つ上の<sの<srw_dc:dc ...>にあるかと推測しています。属性をたくさんつけていて、テキストノードとして扱われるらしい複数の空白も持っていて、この辺にgetFirstChild()で素直に一つ下の階層に移らないのではない理由がありそうなのですが、調べきれません。
どうかお詳しい方がいらしたら、この辺をご解説いただきたく存じます。
Java
1if (recordxxNode.getNodeName().equals("recordData")) { 2 System.out.println("try1.5"); 3 Node srwdcdcNode = recordxxNode.getFirstChild(); 4 System.out.println("srwdcdcNode.getTextContent()="+srwdcdcNode.getTextContent()); 5 System.out.println("try1.6"); 6 Node dcNode = srwdcdcNode.getFirstChild(); 7 System.out.println("try1.61"); 8 System.out.println("dcNode.getTextContent()"+dcNode.getNodeType()); 9 if(checkedElementNode(dcNode)) { 10 System.out.println("try1.7"); 11 while(dcNode != null) { 12 System.out.println("try1.8"); 13 if(dcNode.getNodeName().equals("dc:title")){ 14 data[0] = dcNode.getTextContent(); 15 } 16 if(dcNode.getNodeName().equals("dc:creator")){ 17 data[1] = dcNode.getTextContent(); 18 } 19 if(dcNode.getNodeName().equals("dc:publisher")){ 20 data[2] = dcNode.getTextContent(); 21 } 22 dcNode = dcNode.getNextSibling(); 23 24 } 25 26 } 27 else { 28 System.out.println("try3"); 29 30 } 31 } 32
XML
1<srw_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:srw_dc="info:srw/schema/1/dc-v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="info:srw/schema/1/dc-v1.1 http://www.loc.gov/standards/sru/dc-schema.xsd"> 2 <dc:title>できるWindows 10</dc:title> 3 <dc:creator>法林岳之, 一ケ谷兼乃, 清水理史, できるシリーズ編集部 著</dc:creator> 4 <dc:description>Home/Pro/Enterprise対応</dc:description> 5 <dc:description>索引あり</dc:description> 6 <dc:publisher>インプレス</dc:publisher> 7 <dc:language>jpn</dc:language> 8</srw_dc:dc>
回答1件
あなたの回答
tips
プレビュー