广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java StAX中的StreamFilter是什么?_北大青鸟IT学校

作者:邓华发布时间:2021-04-16分类:Java技术浏览:946


导读:前面惠州北大青鸟老师给大家分享了很多关于Java StAX的知识,那么你知道Java StAX中的StreamFilter是什么吗?接下来跟着老师一起来学习一下。

前面惠州北大青鸟老师给大家分享了很多关于Java StAX的知识,那么你知道Java StAX中的StreamFilter是什么吗?接下来跟着老师一起来学习一下。

import java.io.FileInputStream;import javax.xml.namespace.QName;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamReader;import javax.xml.stream.events.XMLEvent;public class Main implements javax.xml.stream.StreamFilter {  public static void main(String[] args) throws Exception {
   String filename = "yourXML.xml";

   XMLInputFactory xmlif = null;

   xmlif = XMLInputFactory.newInstance();
   xmlif.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES,
       Boolean.TRUE);
   xmlif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES,
       Boolean.FALSE);
   xmlif.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, Boolean.TRUE);
   xmlif.setProperty(XMLInputFactory.IS_COALESCING, Boolean.TRUE);

   System.out.println("FACTORY: " + xmlif);
   System.out.println("filename = " + filename);

   FileInputStream fis = new FileInputStream(filename);

   XMLStreamReader xmlr = xmlif.createFilteredReader(
       xmlif.createXMLStreamReader(fis), new Main());    int eventType = xmlr.getEventType();
   printEventType(eventType);    while (xmlr.hasNext()) {
     eventType = xmlr.next();
     printEventType(eventType);
     printName(xmlr, eventType);
     printText(xmlr);      if (xmlr.isStartElement()) {
       printAttributes(xmlr);
     }
     printPIData(xmlr);
   }
 }  public static final String getEventTypeString(int eventType) {    switch (eventType) {    case XMLEvent.START_ELEMENT:      return "START_ELEMENT";    case XMLEvent.END_ELEMENT:      return "END_ELEMENT";    case XMLEvent.PROCESSING_INSTRUCTION:      return "PROCESSING_INSTRUCTION";    case XMLEvent.CHARACTERS:      return "CHARACTERS";    case XMLEvent.COMMENT:      return "COMMENT";    case XMLEvent.START_DOCUMENT:      return "START_DOCUMENT";    case XMLEvent.END_DOCUMENT:      return "END_DOCUMENT";    case XMLEvent.ENTITY_REFERENCE:      return "ENTITY_REFERENCE";    case XMLEvent.ATTRIBUTE:      return "ATTRIBUTE";    case XMLEvent.DTD:      return "DTD";    case XMLEvent.CDATA:      return "CDATA";
   }    return "UNKNOWN_EVENT_TYPE";
 }  private static void printEventType(int eventType) {
   System.out.print("EVENT TYPE(" + eventType + "):");
   System.out.println(getEventTypeString(eventType));
 }  private static void printName(XMLStreamReader xmlr, int eventType) {    if (xmlr.hasName()) {
     System.out.println("HAS NAME: " + xmlr.getLocalName());
   } else {
     System.out.println("HAS NO NAME");
   }
 }  private static void printText(XMLStreamReader xmlr) {    if (xmlr.hasText()) {
     System.out.println("HAS TEXT: " + xmlr.getText());
   } else {
     System.out.println("HAS NO TEXT");
   }
 }  private static void printPIData(XMLStreamReader xmlr) {    if (xmlr.getEventType() == XMLEvent.PROCESSING_INSTRUCTION) {
     System.out.println(" PI target = " + xmlr.getPITarget());
     System.out.println(" PI Data = " + xmlr.getPIData());
   }
 }  private static void printAttributes(XMLStreamReader xmlr) {    if (xmlr.getAttributeCount() > 0) {
     System.out.println("\nHAS ATTRIBUTES: ");      int count = xmlr.getAttributeCount();      for (int i = 0; i < count; i++) {
       QName name = xmlr.getAttributeName(i);
       String namespace = xmlr.getAttributeNamespace(i);
       String type = xmlr.getAttributeType(i);
       String prefix = xmlr.getAttributePrefix(i);
       String value = xmlr.getAttributeValue(i);

       System.out.println("ATTRIBUTE-PREFIX: " + prefix);
       System.out.println("ATTRIBUTE-NAMESP: " + namespace);
       System.out.println("ATTRIBUTE-NAME:   " + name.toString());
       System.out.println("ATTRIBUTE-VALUE:  " + value);
       System.out.println("ATTRIBUTE-TYPE:  " + type);
     }
   } else {
     System.out.println("HAS NO ATTRIBUTES");
   }
 }  public boolean accept(XMLStreamReader reader) {    if (!reader.isStartElement() && !reader.isEndElement()) {      return false;
   } else {      return true;
   }
 }
}

相信通过上面老师的解答,大家应该知道StreamFilter是什么了吧!想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区详细了解。

java7.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表