Bla*_*man -2 java xml spring sax
我正在为xml编写一个SAX解析器,它返回的对象没有我在事件中设置的值.
我的类结构是这样的:
public class ProductSAXHandler extends DefaultHandler {
private Product product;
public ProductSAXHandler() {
product = new Product();
}
public Product ParseXmlFile(String xml) {
SAXParserFactory spf = new ...
XMLReader parser = ....
parser.parse(xml);
return product;
}
public void StartElement(....) {
for(int ...) { // looping through attributes
if(qName == "description" && name == "sku") {
product.setSKU(value);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我处于调试模式时,产品的值确实设置了,我可以看到产品的sku字段具有正确的值.
但由于某种原因,product返回的对象只是一个新的Product对象,在解析过程中没有设置任何值.
我在这做错了什么?一定是我不理解这些事件是如何被解雇的等等.
更新
很奇怪,在我的if语句中,set的属性值正确地指向了我的产品类的SKU字段,但是当我在ParseXMLFile中返回产品对象时,SKU字段为空.
我猜回调是在不同的时间开始,我怎么想正确回归呢?