Java解析Xml Vimeo-提取缩略图url
我从vimeo获得了以下xml文件: 我正在尝试使用以下代码提取缩略图媒体:Java解析Xml Vimeo-提取缩略图url,java,xml,parsing,Java,Xml,Parsing,我从vimeo获得了以下xml文件: 我正在尝试使用以下代码提取缩略图媒体: File fXmlFile = new File("http://vimeo.com/api/v2/video/" + linkId + ".xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); D
File fXmlFile = new File("http://vimeo.com/api/v2/video/" + linkId + ".xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
return ((Node) doc.getElementsByTagName("thumbnail_medium")).getNodeValue();
但是我得到了“未定义”作为返回值您不能对该行进行强制转换:
return ((Node) doc.getElementsByTagName("thumbnail_medium")).getNodeValue();
return doc.getElementsByTagName("thumbnail_medium").item(0).getTextContent();
抛出ClassCastException。因此,您需要获取节点列表中的唯一项,并使用此行获取其文本值:
return ((Node) doc.getElementsByTagName("thumbnail_medium")).getNodeValue();
return doc.getElementsByTagName("thumbnail_medium").item(0).getTextContent();
我用这两种方法进行了测试:
@Test
public void domTestVimeo() throws ParserConfigurationException,
SAXException, IOException {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new ClassPathResource("vimeo.xml")
.getInputStream());
doc.getDocumentElement().normalize();
String val = ((Node) doc.getElementsByTagName("thumbnail_medium"))
.getNodeValue();
System.out.println(val);
}
及
第一个抛出ClassCastException,第二个打印http://b.vimeocdn.com/ts/137/151/137151977_200.jpg
我想这就是您要寻找的价值
另外,您是如何从传递URL的文件对象中读取的?您不能将URL强制转换为以下内容:
return ((Node) doc.getElementsByTagName("thumbnail_medium")).getNodeValue();
return doc.getElementsByTagName("thumbnail_medium").item(0).getTextContent();
抛出ClassCastException。因此,您需要获取节点列表中的唯一项,并使用此行获取其文本值:
return ((Node) doc.getElementsByTagName("thumbnail_medium")).getNodeValue();
return doc.getElementsByTagName("thumbnail_medium").item(0).getTextContent();
我用这两种方法进行了测试:
@Test
public void domTestVimeo() throws ParserConfigurationException,
SAXException, IOException {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new ClassPathResource("vimeo.xml")
.getInputStream());
doc.getDocumentElement().normalize();
String val = ((Node) doc.getElementsByTagName("thumbnail_medium"))
.getNodeValue();
System.out.println(val);
}
及
第一个抛出ClassCastException,第二个打印http://b.vimeocdn.com/ts/137/151/137151977_200.jpg
我想这就是您要寻找的价值
另外,您是如何读取传递URL的文件对象的?哦,非常感谢您花时间给我详细的答案,我明天会检查这个问题。是的,我注意到URL和我不知道的文件也有这样的问题:)我对ClassPathResource有一些问题,我不知道这个类是从哪个包来的(我也使用GAE)好的,我用URL()替换了ClassPathResource,现在它对我来说运行良好,再次感谢;)美好的您可以发布代码以从URL加载资源吗?如果我确信我刚刚对你的最后一个答案进行了编辑,那就太方便了,再次谢谢你,梅尔,我真的很感谢你的帮助,同时我也学到了一些东西;)哦,非常感谢你花时间给我那个详细的答案,我明天会检查这个。是的,我注意到URL和我不知道的文件也有这样的问题:)我对ClassPathResource有一些问题,我不知道这个类是从哪个包来的(我也使用GAE)好的,我用URL()替换了ClassPathResource,现在它对我来说运行良好,再次感谢;)美好的您可以发布代码以从URL加载资源吗?如果我确信我刚刚对你的最后一个答案进行了编辑,那就太方便了,再次谢谢你,梅尔,我真的很感谢你的帮助,同时我也学到了一些东西;)