자바로 시작한 첫날이고 내 웹 사이트 용으로 약간의 xml 파서를 만들려고합니다. 따라서 내 sitemaps.xml을 깨끗하게 처리 할 수 있습니다. 코드 패스자바 jdom xml 구문 분석
System.out.println(xml);
내가 XML 사이트 맵의 깨끗한 인쇄를 얻을 때 내가 사용하는 코드는
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.net.URL;
import java.util.List;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
class downloadxml {
public static void main(String[] args) throws IOException {
String str = "http://www.someurl.info/sitemap.xml";
URL url = new URL(str);
InputStream is = url.openStream();
int ptr = 0;
StringBuilder builder = new StringBuilder();
while ((ptr = is.read()) != -1) {
builder.append((char) ptr);
}
String xml = builder.toString();
org.jdom2.input.SAXBuilder saxBuilder = new SAXBuilder();
try {
org.jdom2.Document doc = saxBuilder.build(new StringReader(xml));
System.out.println(xml);
Element xmlfile = doc.getRootElement();
System.out.println("ROOT -->"+xmlfile);
List list = xmlfile.getChildren("url");
System.out.println("LIST -->"+list);
} catch (JDOMException e) {
// handle JDOMExceptio n
} catch (IOException e) {
// handle IOException
}
System.out.println("===========================");
}
}
같다. 그것이 올 때 :
System.out.println("ROOT -->"+xmlfile);
출력 :
ROOT -->[Element: <urlset [Namespace: http://www.sitemaps.org/schemas/sitemap/0.9]/>]
또한 루트 요소를 찾습니다. 그러나 스크립트가 차일 가야 일부 또는 다른 이유에 대해, 그것은 빈 인쇄를 반환 :
System.out.println("LIST -->"+list);
출력 :
LIST -->[]
내가 다른 방법으로 무엇을해야합니까? 차일드를 가져 오기위한 포인터가 있습니까?
XML은이
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>http://www.image.url</loc>
<image:image>
<image:loc>http://www.image.url/image.jpg</image:loc>
</image:image>
<changefreq>daily</changefreq>
</url>
<url>
</urlset>
감사합니다. 또한 두 번째 조언은 매우 좋았습니다! – Johnny000
환영합니다. 네임 스페이스 및 JDOM에서 처리하는 방법에 대한 자세한 내용은 http://www.jdom.org/docs/faq.html#a0260을 참조하십시오. – rolfl