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 = gcnew 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);
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"
), необходимо указатьnull
или String.Empty для параметров префикса пространства имен и URI пространства имен. Еслиhttp://www.contoso.com/books
указать в качестве параметра CreateAttribute URI пространства имен, метод автоматически создаст префикс пространства имен для нового атрибута.Если созданный атрибут является узлом пространства имен, который конфликтует с объявлением пространства имен в элементе, либо потому, что выбранный префикс пространства имен используется другим объявлением пространства имен на том же область, либо потому, что выбранный префикс совпадает с выбранным префиксом элемента, но привязан к другому URI пространства имен, создается исключение.
Возвращаемый XmlWriter объект можно использовать только для создания атрибутов. Вызов других XmlWriter методов объекта, которые не создают атрибуты, вызывает исключение.
Метод CreateAttributes не влияет на положение XPathNavigatorобъекта .