を使用してニュースサイトからいくつかの値を取得したいと思いますSAXParser
。しかし、その構造は私には難しいです。私はXMLとSAXを初めて使用します。
問題:サイト名に同じタグ名を使用し、XMLにニュースタイトルを使用しているニュースサイト。
Javaコードを実行するとエラーなしで動作しますが、問題は出力に関するものです。
タグの子タグのみを取得するにはどうすればよいですか?アプリケーションにサイトタイトルを表示したくありません。それは私にとって大きな問題です。<item>
<title>
XML側
<channel>
<title>Site Name</title>
<item>
<title>News Title!</title>
</item>
</channel>
Java側
Javaファイルにエラーはありません:)
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean newsTitle = false;
public void startElement(String uri, String localName,
String qName, Attributes attributes)
throws SAXException {
//System.out.println("Start Element :" + qName);
if (qName.equalsIgnoreCase("title")) {
newsTitle = true;
}
}
public void endElement(String uri, String localName,
String qName) throws SAXException {
//System.out.println("End Element :" + qName);
}
public void characters(char ch[], int start, int length)
throws SAXException {
if (newsTitle) {
System.out.println("Title : "
+ new String(ch, start, length));
newsTitle = false;
}
}
};
saxParser
.parse("C:\\ntv.xml",handler);
}
catch (Exception e) {
e.printStackTrace();
}
出力:
Title : Site Name
Title : News Title