Android XML Parsing, omitting "& amp;"

The problem again is that although I have successfully implemented the SAX parser in my code ... It behaves strangely. This jus skips enteries after and goes to the next entry. I just wanted to know if this is a typical work of the SAX or m analyzer, which implements it incorrectly.

I implemented org.xml.sax.ContentHandler and provided the following encoding inside ...

`

public void characters(char[] ch, int start, int length)
         {
             if(lastName.equals("id"))
             {
                 String id = String.copyValueOf(ch, start, length);
                 CustomList.idvector.add(id);
             }
             else if(lastName.equals("subcategory"))
             {
                String subcategory = String.copyValueOf(ch, start, length);
                 CustomList.subcategoryvector.add(subcategory);
             }
             else if(lastName.equals("photo"))
             {
                 String photo = String.copyValueOf(ch, start, length);
                 CustomList.photovector.add(photo);
             }
             else if(lastName.equals("name"))
             {
                 String name = String.copyValueOf(ch, start, length);
                 CustomList.namevector.add(name);
             }
         }

`

There are elements with tags ,,, and m that take this information into a vector ... is this correct ???

Now again the problem is that I cannot play a special character like "$" and such ... is there a way we can catch these characters?

+3
source share
2

, , , , .

& XML &.

SAX , , XML hello&goodbye, hello&goodbye.

, SAX characters() - . , characters() , .

+4

4 , ... Thanx Brabster...

public void characters(char[] ch, int start, int length)
             {
                 if(lastName.equals("id") && (lastName != lastElementTraversed))
                 {
                     String s = new String(ch, start, length);
                     if (appendedid == null) 
                     {
                         appendedid = new StringBuffer(s);
                     } else {
                          appendedid.append(s);
                     }

                 }
            else if(lastName.equals("subcategory")&& (lastName !=lastElementTraversed))
                 {
                     String s = new String(ch, start, length);
                     if (appendedsub == null) {
                         appendedsub = new StringBuffer(s);
                      } else {
                          appendedsub.append(s);
                      }
                     //lastElementTraversed = lastName;
                 }
            else if(lastName.equals("photo")&& (lastName != lastElementTraversed))
                 {
                     String s = new String(ch, start, length);
                      if (appendedphoto == null) {
                          appendedphoto = new StringBuffer(s);
                      } else {
                          appendedphoto.append(s);
                      }
                      //lastElementTraversed = lastName;
                 }
            else if(lastName.equals("name") && (lastName != lastElementTraversed))
                 {
                     String s = new String(ch, start, length);
                      if (appendedname == null) {
                          appendedname = new StringBuffer(s);
                      } else {
                          appendedname.append(s);
                      } 
                      //lastElementTraversed = lastName;
                 }
             }
    public void startElement(String uri, String localName, String qName, Attributes atts)
            {
                lastName = localName;
                appendedid=null;
                appendedsub=null;
                appendedphoto=null;
                appendedname=null;

            }

             public void endElement(String uri, String localName, String qName)
             {
                 lastElementTraversed = localName;
                 if(localName.equals("category"))
                    {
                        appendedid=null;
                        appendedsub=null;
                        appendedphoto=null;
                        appendedname=null;

                    }

                     if(appendedid!=null)
                     CustomList.idvector.add(appendedid.toString());
                     if(appendedsub!=null)
                     CustomList.subcategoryvector.add(appendedsub.toString());
                     if(appendedphoto!=null)
                     CustomList.photovector.add(appendedphoto.toString());
                     if(appendedname!=null)
                     CustomList.namevector.add(appendedname.toString());

             }
        }
+1

Source: https://habr.com/ru/post/1726779/


All Articles