這篇文章主要介紹XML解析之sax讀取contact.xml文件完整輸出文檔內容的案例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、新建Demo2類:
import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
/**
* 讀取contact.xml文件,完整輸出文檔內容
* @author APPle
*
*/
public class Demo2 {
public static void main(String[] args)throws Exception {
//1.創建SAXParser
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
//2.讀取xml文件
MyDefaultHandler2 handler = new MyDefaultHandler2();
parser.parse(new File("./src/contact.xml"), handler);
String content = handler.getContent();
System.out.println(content);
}
}
二、建立自定義MyDefaulthander2
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
* SAX處理器程序
* @author APPle
*/
public class MyDefaultHandler2 extends DefaultHandler {
//存儲xml文檔信息
private StringBuffer sb = new StringBuffer();
//獲取xml信息
public String getContent(){
return sb.toString();
}
/**
* 開始標簽
*/
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
sb.append("<"+qName);
//判斷是否有屬性
if(attributes!=null){
for(int i=0;i<attributes.getLength();i++){//int getLength() 返回此列表中的屬性個數。
//得到屬性名稱 id="001"
String attrName = attributes.getQName(i);//String getQName(int index) 通過索引查找屬性的 XML 限定(前綴)名。
//得到屬性值
String attrValue = attributes.getValue(i);//String getValue(int index) 通過索引查找屬性的值。
sb.append(" "+attrName+"=\""+attrValue+"\"");
}
}
sb.append(">");
}
/**
* 文本內容
*/
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
//得到當前讀取的文本
String content = new String(ch,start,length);
sb.append(content);
}
/**
* 結束標簽
*/
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
sb.append("</"+qName+">");
}
}打印輸出結果:
<contactList>
<contact id="001" name="eric">
<name>張三</name>
<age>20</age>
<phone>134222223333</phone>
<email>zhangsan@qq.com</email>
<qq>432221111</qq>
</contact>
<contact id="002" name="jacky">
<name>eric</name>
<age>20</age>
<phone>134222225555</phone>
<email>lisi@qq.com</email>
<qq>432222222</qq>
</contact>
</contactList>以上是XML解析之sax讀取contact.xml文件完整輸出文檔內容的案例的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。