SAX解析器没有为标记采用多个属性

时间:2016-07-07 12:34:32

标签: xml-parsing sax

我想解析以下XML文件并打印标签簿的所有属性列表。我正在使用SAX解析器进行解析。问题是它只打印第一个属性。另一个属性未打印。 XML如下。

<?xml version="1.0"?>
<catalog>
   <book id="bk101" action="lock">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
   </book>
 </catalog>

我应该如何编写代码来打印标签簿的所有属性。

1 个答案:

答案 0 :(得分:0)

startElement的SAX回调可能如下所示。这里的属性在循环中解析:

public void startElement(String namespaceURI, String localName,
                         String qName, Attributes atts)
throws SAXException
{
    System.out.print("<"+qName);
    for(int i=0; i<atts.getLength(); i++) {
     System.out.print(" "+atts.getQName(i)+"=\""+atts.getValue(i)+"\"");
    }
    System.out.println(">");

}