[英]Parsing XML file Using Java (DOM parser)
好的,因此我已经能够通过该xml文件进行解析。 但是我无法进入我想要的部分。
http://www.faroo.com/api?q=iphone&start=1&length=10&l=en&src=news&f=rss
这是xml的URL,因为粘贴在这里看起来很难看。 我浏览了这个xml并将其复制到文件中。 我需要的部分是第一个“项目”中的“标题”。 我已经完成了以下代码:
System.out.println(myDocument.getElementsByTagName("item").item(0).getTextContent());
这只是打印出第一个“项目”的所有内容,例如“标题”,“链接”和“描述”,但我并不想全部打印,我只希望打印“标题”。 我在使其完全正确运行方面遇到困难,但是我感觉自己已经接近了。 任何帮助将不胜感激。 谢谢。
从org.w3c.dom软件包的Oracle文档中 :
此属性返回此节点及其后代的文本内容。
您的代码正在对item
标记调用getTextContent()
。 如果您修改代码以使其从title
标签中检索文本,则它可以正常工作。
System.out.println(myDocument.getElementsByTagName("item").item(0).getFirstChild().getTextContent());
请注意,这取决于title
是item
的第一个子标记。 您可能需要将其更改为与订单无关的解决方案。
以下是遍历整个rss的代码,并获取所有标题,链接和描述。 您可以创建一个具有标题,链接和描述作为属性的对象,并根据需要使用它:
try {
File fXmlFile = new File("api.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("item");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("title : " + eElement.getElementsByTagName("title").item(0).getTextContent());
System.out.println("link : " + eElement.getElementsByTagName("link").item(0).getTextContent());
System.out.println("description : " + eElement.getElementsByTagName("description").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.