powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Методы LexicalHandler Xerces'a
4 сообщений из 4, страница 1 из 1
Методы LexicalHandler Xerces'a
    #33269524
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немогу понять почему невыполняются методы интерфейса LexicalHandler. Классом SomeClass наследую методы сразу двух интерфейсов LexicalHandler, ContentHandler. Так вот методы второго замечательно обробатываются.
Кто нибуть работал с этими интерфейсами?
...
Рейтинг: 0 / 0
Методы LexicalHandler Xerces'a
    #33270763
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может что непонятно описал? Или никто с этим неработал?
...
Рейтинг: 0 / 0
Методы LexicalHandler Xerces'a
    #33270779
Привиди простой примерчик кода, который не работает "как надо".

Может поможет...
...
Рейтинг: 0 / 0
Методы LexicalHandler Xerces'a
    #33271013
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строю дерево XML документа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
String vendorParserClass = "org.apache.xerces.parsers.SAXParser";

XMLReader reader = XMLReaderFactory.createXMLReader(vendorParserClass);

    ContentHandler jTreeContentHandler= new  JTreeContentHandler(treeModel,base);
    ErrorHandler jTreeErrorHandler= new  JTreeErrorHandler();

   //регистрируем
    reader.setContentHandler(jTreeContentHandler);
    reader.setErrorHandler(jTreeErrorHandler);
    reader.setEntityResolver( new  SimpleEntityResolver());
    reader.setFeature("http://xml.org/sax/features/validation",true);

    InputSource inputSource =  new  InputSource(xmlURI);
    reader.parse(inputSource);

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
 class  JTreeContentHandler  implements  ContentHandler,LexicalHandler {
     private  DefaultTreeModel treeModel;
     private  DefaultMutableTreeNode current;

     private  Locator locator;
     private  Map namespaceMapping;

     public  JTreeContentHandler(DefaultTreeModel treeModel,
                               DefaultMutableTreeNode current) {
       this .treeModel = treeModel;
       this .current = current;
       this .namespaceMapping= new  HashMap();
    }
// Все методы ContentHandler выкладывать нестану, они работают

     public   void  setDocumentLocator(Locator locator){
       this .locator=locator;
    }
     public   void  startDocument()  throws  SAXException{
    }
     public   void  endDocument ()   throws  SAXException{
    }

     public   void  processingInstruction(String target,String data)  throws  SAXException{
      DefaultMutableTreeNode pi= new  DefaultMutableTreeNode("PI (target = '"+target+"',data= '"+data+"')");
      current.add(pi);
    }
     public   void  startPrefixMapping(String prefix,String uri){
      namespaceMapping.put(uri,prefix);
    }

     public   void  characters( char [] ch, int  start, int  length){
      String s= new  String(ch,start,length);
      DefaultMutableTreeNode data= new  DefaultMutableTreeNode("Символьные данные: '"+s+"'");
      current.add(data);
    }

// Эти методы (LexicalHandler) парсером не вызываются 
     public   void  startDTD(String name,String publicID,String systemID)  throws  SAXException{
      JOptionPane.showMessageDialog( null ,"DTD");
      DefaultMutableTreeNode dtdReference= new  DefaultMutableTreeNode("DTD для '"+name+"'");
       if (publicID!= null ){
        DefaultMutableTreeNode publicIDNode= new  DefaultMutableTreeNode("Публичный идентификатор: '"+publicID+"'");
        dtdReference.add(publicIDNode);
      }
       if (systemID!= null ){
        DefaultMutableTreeNode systemIDNode= new  DefaultMutableTreeNode("Системный ID: '"+systemID+"'");
        dtdReference.add(systemIDNode);
      }
      current.add(dtdReference);
    }

     public   void  endDTD()  throws  SAXException{
    }

     public   void  startEntity(String name) throws  SAXException{
     DefaultMutableTreeNode entity=  new  DefaultMutableTreeNode("Сущность: '"+name+"'");
     current.add(entity);
     current=entity;
    }
     public   void  endEntity(String name)  throws  SAXException{
      current=(DefaultMutableTreeNode)current.getParent();
    }

     public   void  startCDATA()  throws  SAXException{
      DefaultMutableTreeNode cdata=  new  DefaultMutableTreeNode("Секция CDATA");
      current.add(cdata);
      current=cdata;
    }
     public   void  endCDATA()  throws  SAXException{
      current=(DefaultMutableTreeNode)current.getParent();
    }

     public   void  comment( char [] ch,  int  start, int  length)  throws  SAXException{
      String comment= new  String(ch,start,length);
      DefaultMutableTreeNode commentNode=  new  DefaultMutableTreeNode(comment);
      current.add(commentNode);
    }

  }
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Методы LexicalHandler Xerces'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]