IXmlPullParser Интерфейс

Определение

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

[Android.Runtime.Register("org/xmlpull/v1/XmlPullParser", "", "Org.XmlPull.V1.IXmlPullParserInvoker")]
public interface IXmlPullParser : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("org/xmlpull/v1/XmlPullParser", "", "Org.XmlPull.V1.IXmlPullParserInvoker")>]
type IXmlPullParser = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Производный
Атрибуты
Реализации

Комментарии

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

Существуют следующие различные типы средств синтаксического анализа в зависимости от того, какие функции заданы:ul>li b non-validating</b> parser, как определено в спецификации XML 1.0, если FEATURE_PROCESS_DOCDECL имеет значение true <li><b>, проверяя синтаксический анализатор</b>, как определено в спецификации XML 1.0, если FEATURE_VALIDATION имеет значение true (и это означает, что FEATURE_PROCESS_DOCDECL имеет значение true) <li>>><<<Если FEATURE_PROCESS_DOCDECL имеет значение false (это значение по умолчанию, и если требуется другое значение, необходимо изменить перед запуском синтаксического анализа), средство синтаксического анализа ведет себя как xml 1.0, не проверяющее средство синтаксического анализа при условии, что <в>XML-документах отсутствует DOCDECL< (>внутренние объекты по-прежнему могут быть определены с помощью defineEntityReplacementText()). Этот режим работы предназначен <b>для работы в ограниченных средах</b> , таких как J2ME. </ul>

Существует два ключевых метода: next() и nextToken(). В то время как next() предоставляет доступ к событиям высокоуровневого анализа, nextToken() разрешает доступ к маркерам более низкого уровня.

Текущее состояние события средства синтаксического анализа можно определить, вызвав метод getEventType(). Изначально средство синтаксического анализа находится в START_DOCUMENT состоянии.

Метод next() перемещает средство синтаксического анализа к следующему событию. Значение int, возвращаемое из следующего, определяет текущее состояние средства синтаксического анализа и идентично значению, возвращаемого при последующих вызовах getEventType ().

Следующие типы событий видны next()<dl<>dt>START_TAG<dd Прочитан> начальный тег XML. <dt>TEXT<dd> Text content было прочитано; текстовое содержимое можно получить с помощью метода getText(). (если в режиме проверки next() не сообщает о игнорируемом пробеле, используйте nextToken() <dt>END_TAG<dd> . Конечный тег был считан <dt>END_DOCUMENT<dd> Нет дополнительных событий / <dl>

после первого метода next() или nextToken() (или любого другого метода next*() вызывается пользовательское приложение, которое может получить версию XML, автономную и кодировку из объявления XML следующими способами:<ul><li><b>version</b>: getProperty("http://xmlpull.org/v1/doc/properties.html#xmldecl-version") возвращает String ("1.0") или null, если XMLDecl не был прочитан или если свойство не поддерживается <li><b>standalone</b>: getProperty("http://xmlpull.org/v1/doc/properties.html#xmldecl-standalone") возвращает значение Boolean: null, если не было автономного объявления или если свойство не поддерживается. В противном случае возвращает значение Boolean(true) if standalone="yes" и Boolean(false) when standalone="no" <li><b>encoding</b>: получено из getInputEncoding() null, если поток имел неизвестную кодировку (не задано в setInputStream) и не был объявлен в XMLDecl </ul>

Минимальный пример использования этого API может выглядеть следующим образом:

import java.io.IOException;
            import java.io.StringReader;

            import org.xmlpull.v1.XmlPullParser;
            import org.xmlpull.v1.<a href="XmlPullParserException.html">XmlPullParserException</a>;
            import org.xmlpull.v1.<a href="XmlPullParserFactory.html">XmlPullParserFactory</a>;

            public class SimpleXmlPullApp
            {

                public static void main (String args[])
                    throws XmlPullParserException, IOException
                {
                    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                    factory.setNamespaceAware(true);
                    XmlPullParser xpp = factory.newPullParser();

                    xpp.<a href="#setInput">setInput</a>( new StringReader ( "&lt;foo>Hello World!&lt;/foo>" ) );
                    int eventType = xpp.getEventType();
                    while (eventType != XmlPullParser.END_DOCUMENT) {
                     if(eventType == XmlPullParser.START_DOCUMENT) {
                         System.out.println("Start document");
                     } else if(eventType == XmlPullParser.START_TAG) {
                         System.out.println("Start tag "+xpp.<a href="#getName()">getName()</a>);
                     } else if(eventType == XmlPullParser.END_TAG) {
                         System.out.println("End tag "+xpp.getName());
                     } else if(eventType == XmlPullParser.TEXT) {
                         System.out.println("Text "+xpp.<a href="#getText()">getText()</a>);
                     }
                     eventType = xpp.next();
                    }
                    System.out.println("End document");
                }
            }

В приведенном выше примере будут выведены следующие выходные данные:

Start document
            Start tag foo
            Text Hello World!
            End tag foo
            End document

Дополнительные сведения об использовании API см. в кратком руководстве по адресу http://www.xmlpull.org

Документация по Java для org.xmlpull.v1.XmlPullParser.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Поля

FeatureProcessDocdecl

Эта функция определяет, обрабатывается ли объявление документа.

FeatureProcessNamespaces

Эта функция определяет, обрабатывает ли средство синтаксического анализа пространства имен.

FeatureReportNamespaceAttributes

Эта функция определяет, предоставляются ли атрибуты пространства имен с помощью методов доступа к атрибутам.

FeatureValidation

Если эта функция активирована, все ошибки проверки, как определено в XML 1.

NoNamespace

Эта константа представляет пространство имен по умолчанию (пустая строка "")

Свойства

AttributeCount

Возвращает число атрибутов текущего начального тега или -1, если текущий тип события не START_TAG

ColumnNumber

Возвращает номер текущего столбца, начиная с 0.

Depth

Возвращает текущую глубину элемента.

EventType

Возвращает тип текущего события (START_TAG, END_TAG, TEXT и т. д.

Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
InputEncoding

Возвращает входную кодировку, если она известна, в противном случае — null.

IsEmptyElementTag

Возвращает значение true, если текущее событие START_TAG и тег дегенерирован (например, <foobar/>).

IsWhitespace

Проверяет, содержит ли текущее событие TEXT только пробелы.

JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызова.

(Унаследовано от IJavaPeerable)
LineNumber

Возвращает номер текущей строки, начиная с 1.

Name

Для событий START_TAG или END_TAG при включении пространств имен возвращается (локальное) имя текущего элемента.

Namespace

Возвращает URI пространства имен текущего элемента.

PeerReference

Возвращает экземпляр JniObjectReference объекта Java, заключенный в оболочку.

(Унаследовано от IJavaPeerable)
PositionDescription

Возвращает короткий текст, описывающий текущее состояние средства синтаксического анализа, включая позицию, описание текущего события и источник данных, если он известен.

Prefix

Возвращает префикс текущего элемента.

Text

Возвращает текстовое содержимое текущего события как String.

Types

Этот массив можно использовать для преобразования целочисленных констант типа события, таких как START_TAG или TEXT, в строку.

Методы

DefineEntityReplacementText(String, String)

Задайте новое значение для текста замены сущностей, как определено в разделе XML 1.0, раздел 4.5 Создание внутреннего текста замены сущностей.

Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если отсутствуют невыполненные ссылки на этот экземпляр, вызывает метод Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Finalized()

Вызывается при завершении работы экземпляра.

(Унаследовано от IJavaPeerable)
GetAttributeName(Int32)

Возвращает локальное имя указанного атрибута, если пространства имен включены, или просто имя атрибута, если пространства имен отключены.

GetAttributeNamespace(Int32)

Возвращает URI пространства имен атрибута с заданным индексом (начинается с 0).

GetAttributePrefix(Int32)

Возвращает префикс указанного атрибута Возвращает значение NULL, если у элемента нет префикса.

GetAttributeType(Int32)

Возвращает тип указанного атрибута Если средство синтаксического анализа не проверяет, он ДОЛЖЕН возвращать CDATA.

GetAttributeValue(Int32)

Возвращает заданное значение атрибутов.

GetAttributeValue(String, String)

Возвращает значение атрибутов, определяемое по URI пространства имен и пространству имен localName.

GetFeature(String)

Возвращает текущее значение данного компонента.

GetNamespace(String)

Возвращает URI, соответствующий заданному префиксу, в зависимости от текущего состояния средства синтаксического анализа.

GetNamespaceCount(Int32)

Возвращает количество элементов в стеке пространства имен для заданной глубины.

GetNamespacePrefix(Int32)

Возвращает префикс пространства имен для заданной позиции в стеке пространства имен.

GetNamespaceUri(Int32)

Возвращает URI пространства имен для заданной позиции в стеке пространства имен Если позиция выходит за пределы диапазона, возникает исключение.

GetProperty(String)

Поиск значения свойства.

GetTextCharacters(Int32[])

Возвращает буфер, содержащий текст текущего события, а также начальное смещение и длину, относящиеся к текущему событию.

IsAttributeDefault(Int32)

Возвращает значение , если указанный атрибут не входных данных был объявлен в XML.

Next()

Получение следующего события синтаксического анализа — содержимое элемента будет объединено, и для всего содержимого элемента должно быть возвращено только одно событие TEXT (комментарии и инструкции по обработке будут игнорироваться, а ссылки на сущности должны быть развернуты или должно быть создано исключение, если невозможно развернуть ссылку на сущность).

NextTag()

Вызовите next() и верните событие, если оно START_TAG или END_TAG в противном случае вызвать исключение.

NextText()

Если текущее событие START_TAG то если следующий элемент — TEXT, то возвращается содержимое элемента или если следующее событие END_TAG возвращается пустая строка, в противном случае возникает исключение.

NextToken()

Этот метод работает аналогично next(), но предоставляет дополнительные типы событий (COMMENT, CDSECT, DOCDECL, ENTITY_REF, PROCESSING_INSTRUCTION или IGNORABLE_WHITESPACE), если они доступны во входных данных.

Require(XmlPullParserNode, String, String)

Проверьте, имеет ли текущее событие указанный тип, а также совпадают ли пространство имен и имя.

SetFeature(String, Boolean)

Используйте этот вызов, чтобы изменить общее поведение средства синтаксического анализа, например обработку пространства имен или обработку объявления doctype.

SetInput(Reader)

Задает источник входных данных для средства синтаксического анализа заданному средству чтения и сбрасывает средство синтаксического анализа.

SetInput(Stream, String)

Задает входной поток, который будет обрабатывать средство синтаксического анализа.

SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое .JniIdentityHashCode

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое .PeerReference

(Унаследовано от IJavaPeerable)
SetProperty(String, Object)

Задайте значение свойства.

UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала его из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенного средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

GetJniTypeName(IJavaPeerable)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

NextAsync(IXmlPullParser)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

NextTagAsync(IXmlPullParser)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

NextTextAsync(IXmlPullParser)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

NextTokenAsync(IXmlPullParser)

Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях).

Применяется к