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 ( "<foo>Hello World!</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 |
Возвращает значение |
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() |
Если отсутствуют невыполненные ссылки на этот экземпляр, вызывает метод |
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) |
Задайте значение, возвращаемое . |
SetJniManagedPeerState(JniManagedPeerStates) |
Xml Pull Parser — это интерфейс, который определяет функции синтаксического анализа, предоставляемые в API XMLPULL версии 1 (посетите этот веб-сайт, чтобы узнать больше об API и его реализациях). (Унаследовано от IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое . |
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 и его реализациях). |