我想从一个带有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