XPathNavigator.CreateAttribute(String, String, String, String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает узел атрибута на текущем узле элемента с помощью префикса пространства имен, локального имени и URI пространства имен, указанного с указанным значением.
public:
virtual void CreateAttribute(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void CreateAttribute(string? prefix, string localName, string? namespaceURI, string? value);
public virtual void CreateAttribute(string prefix, string localName, string namespaceURI, string value);
abstract member CreateAttribute : string * string * string * string -> unit
override this.CreateAttribute : string * string * string * string -> unit
Public Overridable Sub CreateAttribute (prefix As String, localName As String, namespaceURI As String, value As String)
Параметры
- prefix
- String
Префикс пространства имен нового узла атрибута (если таковой есть).
- namespaceURI
- String
Универсальный код ресурса (URI) пространства имен для нового узла атрибута (если таковой имеется).
- value
- String
Значение нового узла атрибута. Если Empty или null передается, создается пустой узел атрибута.
Исключения
Не XPathNavigator размещается на узле элемента.
Не поддерживает редактирование XPathNavigator .
Примеры
В следующем примере новый discount атрибут создается на price дочернем элементе первого book элемента в contosoBooks.xml файле.
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");
navigator.CreateAttribute("", "discount", "", "1.00");
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")
navigator.CreateAttribute("", "discount", "", "1.00")
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>
Комментарии
Значения префикса пространства имен и URI можно получить с помощью LookupPrefix метода или LookupNamespace метода. Например, следующий синтаксис создает атрибут с помощью пространства xmlns:bk="http://www.contoso.com/books"имен в области:
editor.CreateAttribute(navigator.Prefix, "attributeName", LookupNamespace(navigator.Prefix), "text")
При этом создается новый атрибут <bk:element attributeName="text"/> для текущего элемента.
Ниже приведены важные заметки, которые следует учитывать при использовании CreateAttribute метода.
Если указанный префикс пространства имен имеет String.Empty или
null, префикс для URI пространства имен нового атрибута получается из текущих пространств имен в области. Если префикс пространства имен не назначен указанному URI пространства имен в текущей области, то префикс пространства имен создается автоматически. Например, чтобы создать новый атрибут для элемента в пространствеcontosoBooks.xmlимен по умолчанию файла( (xmlns="http://www.contoso.com/books"), укажитеnullString.Empty или для параметров префикса пространства имен и URI пространства имен. Приhttp://www.contoso.com/booksуказании параметра URI пространства имен метод автоматически CreateAttribute создает префикс пространства имен для нового атрибута.Если новый атрибут создан является узлом пространства имен, который конфликтует с объявлением пространства имен в элементе, либо потому, что выбранный префикс пространства имен используется другим объявлением пространства имен в той же области, либо так как выбранный префикс совпадает с выбранным префиксом элемента, но привязан к другому URI пространства имен, создается исключение.
Метод CreateAttribute не влияет на положение XPathNavigatorобъекта.