Java XML阅读器不适用于URL中的多个元素
我在项目中使用现有的XMLReader代码从XML页面获取元素。它只适用于以下一种元素: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
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。