前提・実現したいこと
Java初心者で、学習の為にxmlファイルを読み込んで、条件をつけて出力する課題に取り組んでいるのですが、下記の条件の内「item要素にOKとokの両方有れば「だぶる」と出力する」がうまく組み込めません。
よろしくお願い致します。
XML
<?xml version="1.0" encoding="UTF-8"?> <property> <item>ok</item> </property> 条件 item要素にokが有れば「おっけー」と出力する item要素にOKが有れば「オッケー」と出力する item要素にOKとokの両方有れば「だぶる」と出力する item要素にokかOKが無ければ「無し」と出力するpackage reader; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class XmlReader { public void domRead(String file) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("property.xml")); Element element = doc.getDocumentElement(); NodeList nodeList = element.getChildNodes(); for(int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if(node.getNodeType() == Node.ELEMENT_NODE) { Element name = (Element)node; if(name.getNodeName().equals("item")) { if(name.getTextContent().equals("ok")) { System.out.println("おっけー"); } if(name.getTextContent().equals("OK")) { System.out.println("オッケー"); } if(!(name.getTextContent().equals("ok"))&&(!(name.getTextContent().equals("OK")))){ System.out.println("なし"); } } } } } catch (Exception e) { e.printStackTrace(); } } }
package action; import reader.XmlReader; public class Main { public static void main(String[] args) throws Exception { XmlReader reader = new XmlReader(); reader.domRead("property.xml"); } }
「うまく組み込めません」とは, 具体的にどういう状況でしょう.
コードが思いつかないのか, 思いついたコードを入れてみたが想定した動作をしなかったのか...
「だぶる」以外は動作していますか.
ありがとうございます。
コードが思いつきません。
例えば、
<property>
<item>okOK</item>
</property>
に対して
だぶる、と出力するなら今までの学習からわかるのですが、
<property>
<item>ok</item>
<item>OK</item>
</property>
という場合に、だぶる
と出力する為に、item要素の内容を全てforで確認した上で、どちらもあれば、trueとなるif文を組むのだと思うのですが、その方法が調べてもわかりません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー