# Class XMLTokener

java.lang.Object
org.daypilot.json.JSONTokener
org.daypilot.json.XMLTokener

public class XMLTokener extends JSONTokener
The XMLTokener extends the JSONTokener to provide additional methods for the parsing of XML texts.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final HashMap`
  `entity`
  The table of entity values.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XMLTokener(String s)`
  Construct an XMLTokener from a string.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `nextCDATA()`
  Get the text in the CDATA block.
  `Object`
  `nextContent()`
  Get the next XML outer token, trimming whitespace.
  `Object`
  `nextEntity(char a)`
  Return the next entity.
  `Object`
  `nextMeta()`
  Returns the next XML meta token.
  `Object`
  `nextToken()`
  Get the next XML Token.
  `boolean`
  `skipPast(String to)`
  Skip characters until past the requested string.

  ### Methods inherited from class org.daypilot.json.JSONTokener

  `back, dehexchar, more, next, next, next, nextClean, nextString, nextTo, nextTo, nextValue, skipTo, syntaxError, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### entity

    public static final HashMap entity
    The table of entity values. It initially contains Character values for amp, apos, gt, lt, quot.

- ## Constructor Details

  - ### XMLTokener

    public XMLTokener(String s)
    Construct an XMLTokener from a string.
    Parameters:
      `s` - A source string.

- ## Method Details

  - ### nextCDATA

    public String nextCDATA() throws JSONException
    Get the text in the CDATA block.
    Returns:
      The string up to the `]]>`.
    Throws:
      `JSONException` - If the `]]>` is not found.

  - ### nextContent

    public Object nextContent() throws JSONException
    Get the next XML outer token, trimming whitespace. There are two kinds of tokens: the 'invalid input: '<'' character which begins a markup tag, and the content text between markup tags.
    Returns:
      A string, or a 'invalid input: '<'' Character, or null if there is no more source text.
    Throws:
      `JSONException`

  - ### nextEntity

    public Object nextEntity(char a) throws JSONException
    Return the next entity. These entities are translated to Characters: `& ' > < "`.
    Parameters:
      `a` - An ampersand character.
    Returns:
      A Character or an entity String if the entity is not recognized.
    Throws:
      `JSONException` - If missing ';' in XML entity.

  - ### nextMeta

    public Object nextMeta() throws JSONException
    Returns the next XML meta token. This is used for skipping over invalid input: '<!'...> and invalid input: '<'?...?> structures.
    Returns:
      Syntax characters (`invalid input: '<' > / = ! ?`) are returned as Character, and strings and names are returned as Boolean. We don't care what the values actually are.
    Throws:
      `JSONException` - If a string is not properly closed or if the XML is badly structured.

  - ### nextToken

    public Object nextToken() throws JSONException
    Get the next XML Token. These tokens are found inside of angle brackets. It may be one of these characters: `/ > = ! ?` or it may be a string wrapped in single quotes or double quotes, or it may be a name.
    Returns:
      a String or a Character.
    Throws:
      `JSONException` - If the XML is not well formed.

  - ### skipPast

    public boolean skipPast(String to) throws JSONException
    Skip characters until past the requested string. If it is not found, we are left at the end of the source with a result of false.
    Parameters:
      `to` - A string to skip past.
    Throws:
      `JSONException`