2012-02-07 3 views
-4

Получение вопроса для разбора XML с помощью DOM, используя подход, как это определено в http://www.developerfusion.com/code/2064/a-simple-way-to-read-an-xml-file-in-java/Dom парсер для разбора XML

<?xml version="1.0" encoding="UTF-8"?> 
<apis xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> 
    <api name="getFormFields" requesttype ="GET"> 
     <url>/fieldtype/</url>  
     <parameters> 
      <parameter><![CDATA[fieldtype=textbox&fieldId=8668376496495]]></parameter> 

      </parameters> 
</api> 
+1

, также добавьте любое исключение, которое вы получаете ... – npinti

+0

почему SAX? используйте DOM parsing –

+1

@vishalrmakwana, вы также должны указать сообщение об ошибке. – vikky

ответ

0

Существует link, которые содержат шаг за шагом документации.

Вот пример XML-файл:

<bank> 
    <customer id="1"> 
     <first>John</first> 
     <last>Smith</last> 
     <address>1 Broadway, San Fransico, CA</address> 
     <balance>3230</balance> 
    </customer> 
    <customer id="2"> 
     <first>Bill</first> 
     <last>Gates</last> 
     <address>555 Microsoft Way, Redmond, WA</address> 
     <balance>9876543</balance> 
    </customer> 
</bank> 

И код для синтаксического анализа:

public class BankTest { 

    final StackContentHandler handler = new StackContentHandler(); 
    final Bank bank = new Bank(); 

    public BankTest() { 
     handler.setElementHandler("bank", "customer", new CustomerHandler()); 
     handler.connect("customer","first", "customer.firstName"); 
     handler.connect("customer","last", "customer.lastName"); 
     handler.connect("customer","address", "customer.address"); 
     handler.connect("customer","balance", "customer.balance"); 

     try { 
      SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); 
      parser.parse(new File("d:\\mybank.xml"), handler); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    public class CustomerHandler extends ElementAdapter { 
     private Customer customer; 

     public void startElement(ElementHandler parent, String element, Attributes attributes) throws SAXException { 
      customer = new Customer(); 
      customer.setId(Integer.parseInt(attributes.getValue("id"))); 
      bank.addCustomer(customer); 
     } 

     public Customer getCustomer() { 
      return customer; 
     } 
    } 
} 

для подробнее использовать link

+0

правда, было бы здорово, если бы кто-то образец фрагмента для вышеописанного xml – Vishal

0

U можно использовать XSTREAM для разбора XML в объекты java просто и легко учиться. Вот Xstream Tutorial

+0

@ Nivesh xstream выглядит лучше, но как обрабатывать такие вещи, как , как установить имя? – Vishal

+0

, пожалуйста, помогите разобраться с этим парсером для анализа XML-вопроса, размещенного в stackoverflow – Vishal

1

Мое предложение использовать JAXB стандарт, выгода от использования JAXB являются:

  1. Это стандарт.
  2. Он прост в использовании.
  3. Поддержка Маршал и Unmarshal вместе.
  4. Это новейшая версия обработки XML в Java и выпущен после JAXP

Вы можете найти хороший учебник здесь:

  1. http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDEQFjAA&url=http%3A%2F%2Fjaxb.java.net%2Ftutorial%2F&ei=E9cwT5GlI4aR-wau7OTpBQ&usg=AFQjCNGP2lvdm22FIL5JJO3exd9m067O6g&sig2=G07GhxXn_6tMfyTCr_fGDg

  2. http://www.vogella.de/articles/JAXB/article.html

Смежные вопросы