我创建了一个从url地址读取xml文档的应用程序。最近逻辑已被修改,现在我没有收到XML文档的url地址,而是接收文档内容本身,所以我必须修改以下方法:
public List<Product> getProducts(String content){
List<Product> products = new ArrayList<Product>();
XMLReader xr;
try {
xr = sp.getXMLReader();
ProductsXMLHandler productsXmlHandler = new ProductsXMLHandler();
xr.setContentHandler(productsXmlHandler);
xr.parse(content);
products = productsXmlHandler.getProducts();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return products;
}
}
如前所述,变量String内容不是url而是XML文档,因此我必须将此内容传递给XMLReader。
目前行xr.parse(content);
无效,因为“内容”值不再是网址。
是否有人知道如何修改方法以解析XML内容而不是尝试解析给定网址中的内容?
谢谢!
答案 0 :(得分:3)
如果是org.xml.sax.XMLReader
:
InputSource is = new InputSource(new StringReader(content));
xr.parse(is);