使用SAX Parser更新XML文件

时间:2017-01-14 18:38:02

标签: java xml sax

我尝试更新从数据库读取的XML文件,保存为XMLType,然后我执行SAXParse保存变量所需的所有信息,用于构建对数据库的进一步查询。根据我读过的值,我正在检查一些条件,然后我想更新3个节点的值。如何更新值。下面是我用来解析文档的代码,但我不知道如何使用SAX更新java中的XML文件。

public void parseXML(int i) throws XMLParseException, SAXException, IOException, SQLException {
    String xml = printXML(i);
    saxParser.parse(new InputSource(new StringReader(xml)), handler);
}

handler我有各种条件来保存我感兴趣的东西:

public class UserHandler extends DefaultHandler {

    StringBuilder builder = new StringBuilder();
    private Data data = new Data();
    boolean idOrder = false; 
    boolean idReader = false; 


   @Override
   public void startElement(String uri, 
   String localName, String qName, Attributes attributes)
      throws SAXException {
      if (qName.equalsIgnoreCase("order")) {
         data.setIdOrder(attributes.getValue("ID_ORDER"));
      } else if (qName.equalsIgnoreCase("id_reader")) {
         idReader = true;
      } 
      builder.setLength(0);
   }

   @Override
   public void endElement(String uri, 
   String localName, String qName) throws SAXException {
      if (qName.equalsIgnoreCase("id_reader")) {
          data.setIdReader(builder.toString());
      } 
   }

   @Override
   public void characters(char ch[], 
      int start, int length) throws SAXException {

       if (idReader) {
           builder.append(new String(ch, start, length));
          } 
   }
}

请给我一些提示。

0 个答案:

没有答案