NSXMLElement
Экземпляры NSXMLElement
класс представляет узлы элемента в древовидной структуре XML. NSXMLElement
объект может иметь дочерние узлы, в частности прокомментировать узлы, узлы инструкции обработки, текстовые узлы и другой NSXMLElement
узлы. Это может также иметь узлы атрибута и узлы пространства имен, связанные с ним (однако, пространство имен, и приписать узлы, не считаются дочерними элементами). Любая попытка добавить a NSXMLDocument
узел, NSXMLDTD
узел, узел пространства имен или узел атрибута как дочерний элемент повышают исключение. Если Вы добавляете дочерний узел к NSXMLElement
возразите и что у дочернего элемента уже есть родитель, NSXMLElement
повышает исключение; дочерний элемент должен быть отсоединен или скопирован сначала.
Разделение на подклассы примечаний
Можно разделить на подклассы NSXMLElement
если Вы хотите узлы элемента с более специализированными атрибутами или поведением, например, атрибутами абзацев и атрибутами шрифта, указывающими, как должно появиться строковое значение элемента.
Методы для переопределения
Разделять на подклассы NSXMLElement
необходимо переопределить основной инициализатор, initWithName:URI:
, и методы упоминаются ниже. В большинстве случаев Вы должны только вызвать реализацию суперкласса, добавляя любой специфичный для подкласса код прежде или после вызова, по мере необходимости.
NSXMLElement
реализации isEqual:
выполнять глубокое сравнение: два NSXMLDocument
объекты не считают равными, если у них нет того же имени, тех же дочерних узлов, тех же атрибутов, и т.д. Если Вы хотите различный стандарт сравнения, переопределения isEqual:
.
Специальные замечания
Из-за архитектуры и модели данных NSXML, когда это анализирует и обрабатывает источник XML, это не может знать о Вашем подклассе, если Вы не переопределяете метод класса replacementClassForClass:
возвратить Ваш пользовательский класс вместо класса NSXML. Если Ваш пользовательский класс не имеет никакого прямого дубликата NSXML — например, это - подкласс NSXMLNode
это представляет разделы CDATA — тогда можно обойти дерево после того, как оно было создано и вставляет новый узел, где это необходимо.
Обратите внимание на то, что можно безопасно установить корневой элемент XML-документа (использующий NSXMLDocument
setRootElement:
метод), чтобы быть экземпляром Вашего подкласса, потому что этот метод только проверяет, чтобы видеть, является ли добавленный узел видом элемента (NSXMLElementKind
). Эти меры предосторожности не применяются, конечно при создании дерева XML программно.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCopying
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.4 и позже.
-
Возвраты
NSXMLElement
объект инициализируется с указанным именем.Объявление
Swift
convenience init(name
name
: String)Objective C
- (instancetype)initWithName:(NSString *)
name
Параметры
name
Строка, указывающая имя элемента.
Возвращаемое значение
Инициализированный
NSXMLElement
объект илиnil
если не успешно выполнялась инициализация.Обсуждение
Строковое представление XML этого объекта
<
name
></
name
>
. Этот метод вызываетinitWithName:URI:
с набором параметра URI кnil
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвраты
NSXMLElement
объект, инициализированный с указанным именем и единственным дочерним элементом текстового узла, содержащим указанное значение.Объявление
Параметры
name
Строка, указывающая имя элемента.
string
Строковое значение текстового узла получателя.
Возвращаемое значение
Инициализированный
NSXMLElement
объект илиnil
если не успешно выполнялась инициализация.Обсуждение
Строковое представление этого объекта
<
name
>
string
</
name
>
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
init (XMLString:error:) - initWithXMLString:error:
Определяемый инициализаторВозвраты
NSXMLElement
объект, создаваемый из указанной строки, содержащей разметку XML.Объявление
Swift
init?(XMLString
string
: String, errorerror
: NSErrorPointer)Параметры
string
Строка, содержащая разметку XML для элемента.
error
По возврату,
NSError
объект, описывающий любые ошибки или предупреждения, следующие из парсинга разметки.Возвращаемое значение
Инициализированный
NSXMLElement
объект илиnil
если не успешно выполнялась инициализация.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
init (name:URI:) - initWithName:URI:
Определяемый инициализаторВозвраты
NSXMLElement
объект, инициализированный с указанным именем и URI.Объявление
Параметры
name
Строка, указывающая полностью определенное имя элемента.
URI
Строка, указывающая пространство имен URI, связанный с элементом.
Возвращаемое значение
Инициализированный
NSXMLElement
объект илиnil
если не успешно выполнялась инициализация.Обсуждение
Можно искать префикс пространства имен для этого узла элемента на основе его использования URI
resolvePrefixForNamespaceURI:
. Этот метод является основным инициализатором дляNSXMLElement
класс.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает дочерние узлы элемента (как
NSXMLElement
объекты) получателя, которые имеют указанное имя.Объявление
Swift
func elementsForName(_
name
: String) -> [AnyObject]Параметры
name
Строка, указывающая имя дочерних узлов элемента, чтобы найти и возвратиться. Если
name
полностью определенное имя, тогда этот метод вызываетelementsForLocalName:URI:
с набором параметра URI к URI, связанному с префиксом. Иначе сравнение основывается на строковом равенстве квалифицированного или неполностью определенного имени.Возвращаемое значение
Массив
NSXMLElement
объекты или пустой массив, если не могут быть найдены никакие дочерние элементы соответствия.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает дочерние узлы элемента (как
NSXMLElement
объекты) получателя, которые являются соответствующими указанному локальному имени и URI.Объявление
Параметры
localName
Строка, указывающая локальное имя элемента.
URI
Строка, указывающая URI, связалась с элементом.
Возвращаемое значение
Массив
NSXMLElement
объекты или пустой массив, если не могли бы быть найдены никакие дочерние элементы соответствия.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Добавляет дочерний узел в конце текущего списка получателя дочерних элементов.
Параметры
child
Объект узла XML, чтобы добавить к дочерним элементам получателя.
Обсуждение
Новый узел имеет индексное значение, которое является одним большим, чем последний из текущих дочерних элементов.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Вставляет новый дочерний узел в указанном расположении в списке получателя дочерних узлов.
Объявление
Objective C
- (void)insertChild:(NSXMLNode *)
child
atIndex:(NSUInteger)index
Параметры
child
Объект узла XML, который будет вставлен как дочерний элемент получателя.
index
Целое число, идентифицирующее позицию в списке получателя дочерних элементов. Исключение повышено если
index
выходит за пределы.Обсуждение
Вставка узла постепенно увеличивает индексы одноуровневых узлов после него.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Вставляет массив дочерних узлов в указанном расположении в списке получателя дочерних элементов.
Объявление
Swift
func insertChildren(_
children
: [AnyObject], atIndexindex
: Int)Objective C
- (void)insertChildren:(NSArray *)
children
atIndex:(NSUInteger)index
Параметры
children
Массив объектов узла XML для добавления как дочерние элементы получателя.
index
Целое число, идентифицирующее позицию в списке получателя дочерних элементов. Исключение повышено если
index
выходит за пределы.Обсуждение
Вставка узла увеличивает индексы одноуровневых узлов после него количеством
children
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Удаляет дочерний узел получателя, идентифицированного данным индексом.
Объявление
Swift
func removeChildAtIndex(_
nodeIndex
: Int)Objective C
- (void)removeChildAtIndex:(NSUInteger)
nodeIndex
Параметры
nodeIndex
Целое число, идентифицирующее узел в списке получателя дочерних элементов для удаления. Исключение повышено если
index
выходит за пределы.Обсуждение
Объект узла XML выпущен после удаления. Индексы последующих дочерних элементов постепенно уменьшаются одним.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Заменяет дочерний узел в указанном расположении с другим дочерним узлом.
Объявление
Objective C
- (void)replaceChildAtIndex:(NSUInteger)
index
withNode:(NSXMLNode *)node
Параметры
index
Целое число, идентифицирующее позицию в списке получателя дочерних элементов. Исключение повышено если
index
выходит за пределы.node
Объект узла XML, который заменит текущий дочерний элемент.
Обсуждение
Замененный объект узла XML выпущен после удаления.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Наборы все дочерние узлы получателя сразу, заменяя любые существующие дочерние элементы.
Объявление
Swift
func setChildren(_
children
: [AnyObject]?)Objective C
- (void)setChildren:(NSArray *)
children
Параметры
children
Массив
NSXMLElement
объекты илиNSXMLNode
объекты видовNSXMLElementKind
,NSXMLProcessingInstructionKind
,NSXMLTextKind
, илиNSXMLCommentKind
.Обсуждение
Отправьте это сообщение с
children
какnil
удалить все дочерние узлы.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Объединяет смежные текстовые узлы получателя, который Вы явно добавили, дополнительно включая разделы CDATA.
Объявление
Swift
func normalizeAdjacentTextNodesPreservingCDATA(_
preserve
: Bool)Objective C
- (void)normalizeAdjacentTextNodesPreservingCDATA:(BOOL)
preserve
Параметры
preserve
YES
true
если разделы CDATA оставлены в покое как текстовые узлы,NO
false
иначе.Обсуждение
Текстовый узел со значением пустой строки удален. При обработке входного источника XML смежные текстовые узлы автоматически нормализованы. Необходимо вызвать этот метод (с
preserve
какNO
false
) перед использованиемNSXMLNode
методыobjectsForXQuery:constants:error:
илиnodesForXPath:error:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Добавляет узел атрибута к получателю.
Объявление
Swift
func addAttribute(_
anAttribute
: NSXMLNode)Objective C
- (void)addAttribute:(NSXMLNode *)
anAttribute
Параметры
anAttribute
Объект узла XML, представляющий атрибут. Если получатель уже имеет атрибут с тем же именем,
anAttribute
заменяет старый атрибут.Обсуждение
Порядок многократных атрибутов сохраняется если
NSXMLPreserveAttributeOrder
когда элемент создается, опция указана.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает узел атрибута получателя с указанным именем.
Объявление
Параметры
name
Строка, указывающая имя атрибута.
Возвращаемое значение
Объект узла XML, представляющий соответствующий атрибут или
nil
если не был найден никакой такой узел.Обсуждение
Если
name
полностью определенное имя, тогда этот метод вызываетattributeForLocalName:URI:
с набором параметра URI к URI, связанному с префиксом. Иначе сравнение основывается на строковом равенстве квалифицированного или неполностью определенного имени.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает узел атрибута получателя, идентифицирующегося локальным именем и URI.
Объявление
Параметры
localName
Строка, указывающая локальное имя атрибута.
URI
Жало, идентифицирующее URI, связалось с атрибутом.
Возвращаемое значение
Объект узла XML, представляющий соответствующий атрибут или
nil
если не был найден никакой такой узел.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает атрибуты получателя
Объявление
Swift
var attributes: [AnyObject]?
Objective C
@property(copy) NSArray *attributes
Возвращаемое значение
Массив
NSXMLNode
объекты видаNSXMLAttributeKind
илиnil
если получатель не имеет никаких узлов атрибута.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Удаляет узел атрибута, идентифицированный по имени.
Объявление
Swift
func removeAttributeForName(_
attrName
: String)Objective C
- (void)removeAttributeForName:(NSString *)
attrName
Параметры
attrName
Строка, указывающая имя атрибута.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Наборы все атрибуты получателя сразу, заменяя любые существующие узлы атрибута.
Объявление
Swift
var attributes: [AnyObject]?
Objective C
@property(copy) NSArray *attributes
Параметры
attributes
Массив
NSXMLNode
объекты видаNSXMLAttributeKind
. Если существуют узлы атрибута с тем же именем, первый атрибут с тем именем используется. Отправьте это сообщение сattributes
какnil
удалить все атрибуты.Обсуждение
Установить атрибуты в узле элемента с помощью
NSDictionary
возразите как входной параметр, посмотритеsetAttributesWithDictionary:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Устанавливает атрибуты получателя на основе пар ключ/значение, указанных в переданном словаре.
Объявление
Swift
func setAttributesWithDictionary(_
attributes
: [NSObject : AnyObject])Objective C
- (void)setAttributesWithDictionary:(NSDictionary *)
attributes
Параметры
attributes
Словарь пар ключ/значение, где название атрибута является ключом и объектным значением атрибута, является значением словаря.
Обсуждение
Метод использует эти имена и объектные значения для создания
NSXMLNode
объекты видаNSXMLAttributeKind
. Удалены существующие атрибуты.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.7 и позже.
-
Устанавливает атрибуты получателя на основе пар ключ/значение, указанных в переданном - в словаре.
Оператор осуждения
Этот метод осуждается, потому что он не функционирует должным образом. Вместо этого используйте
setAttributesWithDictionary:
.Объявление
Swift
func setAttributesAsDictionary(_
attributes
: [NSObject : AnyObject])Objective C
- (void)setAttributesAsDictionary:(NSDictionary *)
attributes
Параметры
attributes
Словарь пар ключ/значение, где название атрибута является ключом и объектным значением атрибута, является значением словаря.
Обсуждение
Метод использует эти имена и объектные значения для создания
NSXMLNode
объекты видаNSXMLAttributeKind
. Существующие атрибуты не удалены.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
Осуждаемый в OS X v10.7.
-
Добавляет узел пространства имен к получателю.
Объявление
Swift
func addNamespace(_
aNamespace
: NSXMLNode)Objective C
- (void)addNamespace:(NSXMLNode *)
aNamespace
Параметры
aNamespace
Объект узла XML вида
NSXMLNamespaceKind
. Если получатель уже имеет пространство имен с тем же именем,aNamespace
не добавляется.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает узлы пространства имен получателя.
Объявление
Swift
var namespaces: [AnyObject]?
Objective C
@property(copy) NSArray *namespaces
Возвращаемое значение
Массив
NSXMLNode
объекты видаNSXMLNamespaceKind
. Возвратыnil
если получатель не имеет никаких узлов пространства имен.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает узел пространства имен с указанным префиксом.
Объявление
Параметры
name
Строка, указывающая префикс пространства имен.
Возвращаемое значение
NSXMLNode
объект видаNSXMLNamespaceKind
илиnil
если нет никакого узла пространства имен с тем префиксом.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Удаляет узел пространства имен, идентифицирующийся данным префиксом.
Объявление
Swift
func removeNamespaceForPrefix(_
name
: String)Objective C
- (void)removeNamespaceForPrefix:(NSString *)
name
Параметры
name
Строка, которая является префиксом для пространства имен.
Обсуждение
Удаленный объект узла XML удален.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает узел пространства имен с префиксом, соответствующим данное полностью определенное имя.
Объявление
Параметры
name
Строка, которая является полностью определенным именем для пространства имен (полностью определенное имя является префиксом плюс локальное имя).
Возвращаемое значение
NSXMLNode
объект видаNSXMLNamespaceKind
илиnil
если нет никакого узла пространства имен соответствия.Обсуждение
Метод смотрит во всей цепочке пространства имен для префикса.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает префикс, связанный с указанным URI.
Объявление
Параметры
namespaceURI
Строка, идентифицирующая URI, связалась с пространством имен.
Возвращаемое значение
Строка, которая является соответствующим префиксом или
nil
если это не находит префикса соответствия.Обсуждение
Метод смотрит во всей цепочке пространства имен для URI.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Наборы все узлы пространства имен получателя сразу, заменяя любые существующие узлы пространства имен.
Объявление
Swift
var namespaces: [AnyObject]?
Objective C
@property(copy) NSArray *namespaces
Параметры
namespaces
Массив
NSXMLNode
объекты видаNSXMLNamespaceKind
. Если существуют узлы пространства имен с тем же префиксом, первый атрибут с тем префиксом используется. Отправьте это сообщение сnamespaces
какnil
удалить все узлы пространства имен.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.