XPathNavigator.CreateAttributes Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект, используемый XmlWriter для создания новых атрибутов в текущем элементе.
public:
virtual System::Xml::XmlWriter ^ CreateAttributes();
public virtual System.Xml.XmlWriter CreateAttributes();
abstract member CreateAttributes : unit -> System.Xml.XmlWriter
override this.CreateAttributes : unit -> System.Xml.XmlWriter
Public Overridable Function CreateAttributes () As XmlWriter
Возвращаемое значение
Объект, используемый XmlWriter для создания новых атрибутов в текущем элементе.
Исключения
Не XPathNavigator размещается на узле элемента.
Не поддерживает редактирование XPathNavigator .
Примеры
В следующем примере новые discount и currency атрибуты создаются на price дочернем элементе первого book элемента в contosoBooks.xml файле с помощью XmlWriter объекта, возвращаемого методом CreateAttributes .
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");
navigator.MoveToChild("price", "http://www.contoso.com/books");
XmlWriter attributes = navigator.CreateAttributes();
attributes.WriteAttributeString("discount", "1.00");
attributes.WriteAttributeString("currency", "USD");
attributes.Close();
navigator.MoveToParent();
Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")
navigator.MoveToChild("price", "http://www.contoso.com/books")
Dim attributes As XmlWriter = navigator.CreateAttributes()
attributes.WriteAttributeString("discount", "1.00")
attributes.WriteAttributeString("currency", "USD")
attributes.Close()
navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)
Пример принимает contosoBooks.xml файл в качестве входных данных.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Комментарии
Ниже приведены важные заметки, которые следует учитывать при использовании CreateAttributes метода.
XPathNavigator При расположении элемента новые атрибуты, созданные XPathNavigator методом, помещаются в конец списка атрибутов текущего элемента.
Новые атрибуты не вставляются до Close вызова метода XmlWriter объекта.
Если указанный префикс пространства имен имеет String.Empty или
null, префикс для URI пространства имен нового атрибута получается из текущих пространств имен в области. Если префикс пространства имен не назначен указанному URI пространства имен в текущей области, то префикс пространства имен создается автоматически. Например, чтобы создать новый атрибут для элемента в пространствеcontosoBooks.xmlимен по умолчанию файла( (xmlns="http://www.contoso.com/books"), укажитеnullString.Empty или для параметров префикса пространства имен и URI пространства имен. Приhttp://www.contoso.com/booksуказании параметра URI пространства имен метод автоматически CreateAttribute создает префикс пространства имен для нового атрибута.Если новый атрибут создан является узлом пространства имен, который конфликтует с объявлением пространства имен в элементе, либо потому, что выбранный префикс пространства имен используется другим объявлением пространства имен в той же области, либо так как выбранный префикс совпадает с выбранным префиксом элемента, но привязан к другому URI пространства имен, создается исключение.
Возвращаемый XmlWriter объект может использоваться только для создания атрибутов. Вызов других XmlWriter методов объекта, которые не создают атрибуты, вызывает исключение.
Метод CreateAttributes не влияет на положение XPathNavigatorобъекта.