Java XML阅读器不适用于URL中的多个元素

Java XML阅读器不适用于URL中的多个元素,java,arrays,xml,xmlreader,Java,Arrays,Xml,Xmlreader,我在项目中使用现有的XMLReader代码从XML页面获取元素。它只适用于以下一种元素: public String getURL(String Url) { BufferedReader br = null; try { URL url = new URL(Url); br = new BufferedReader(new InputStreamReader(url.openStream())); String l

我在项目中使用现有的XMLReader代码从XML页面获取元素。它只适用于以下一种元素:

    public String getURL(String Url) {

    BufferedReader br = null;

    try {

        URL url = new URL(Url);
        br = new BufferedReader(new InputStreamReader(url.openStream()));

        String line;

        StringBuilder sb= new StringBuilder();

        while ((line = br.readLine()) != null) {
            if(line.contains("presentationURL")) {
                line = line.split("<presentationURL>")[1].split("</presentationURL>")[0];
            sb.append(line);
            sb.append(System.lineSeparator());
            }
        }
        return sb.toString();
if(line.contains("manufacturer")) {
line = line.split("<manufacturer>")[1].split("manufacturer")[0];
sb.append(line);
sb.append(System.lineSeparator());
}
公共字符串getURL(字符串Url){
BufferedReader br=null;
试一试{
URL=新URL(URL);
br=新的BufferedReader(新的InputStreamReader(url.openStream());
弦线;
StringBuilder sb=新的StringBuilder();
而((line=br.readLine())!=null){
if(行包含(“presentationURL”)){
line=line.split(“”[1]。split(“”[0];
某人附加(行);
sb.append(System.lineSeparator());
}
}
使某人返回字符串();
。。。 但当我尝试在这里后面添加第二个元素时:

if(line.contains("presentationURL")) {
line = line.split("<presentationURL>")[1].split("</presentationURL>")[0];
sb.append(line);
sb.append(System.lineSeparator());
}
if(line.contains(“presentationURL”)){
line=line.split(“”[1]。split(“”[0];
某人附加(行);
sb.append(System.lineSeparator());
}
像这样:

    public String getURL(String Url) {

    BufferedReader br = null;

    try {

        URL url = new URL(Url);
        br = new BufferedReader(new InputStreamReader(url.openStream()));

        String line;

        StringBuilder sb= new StringBuilder();

        while ((line = br.readLine()) != null) {
            if(line.contains("presentationURL")) {
                line = line.split("<presentationURL>")[1].split("</presentationURL>")[0];
            sb.append(line);
            sb.append(System.lineSeparator());
            }
        }
        return sb.toString();
if(line.contains("manufacturer")) {
line = line.split("<manufacturer>")[1].split("manufacturer")[0];
sb.append(line);
sb.append(System.lineSeparator());
}
if(第行包含(“制造商”)){
line=line.split(“”[1]。split(“制造商”)[0];
某人附加(行);
sb.append(System.lineSeparator());
}

该程序向我提供数组索引越界异常和一些其他错误。如何使该程序适用于更多元素?

请勿使用
String.split
或其他低级字符串操作来读取XML,因为这会导致限制和错误(正如您现在已经注意到的)。相反,请使用。您需要收集所有标记或您知道的任何标记吗?您可以看到,如何使用XMLStreamReader来收集标记?我可以使用XML解析器处理URL吗@ThomasFritsch@firestarter是的,我想是的。据我所知,你可以从URL、InputStream、文件、Reader……读取XML。同意@ThomasFritsch,使用stax pai从InputStream读取XML。