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(namename: 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?(XMLStringstring: 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 *)childatIndex:(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 *)childrenatIndex:(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)indexwithNode:(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Параметры
preserveYEStrueесли разделы CDATA оставлены в покое как текстовые узлы,NOfalseиначе.Обсуждение
Текстовый узел со значением пустой строки удален. При обработке входного источника XML смежные текстовые узлы автоматически нормализованы. Необходимо вызвать этот метод (с
preserveкакNOfalse) перед использованием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 и позже.
