Поделиться через


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

Префикс пространства имен нового узла атрибута (если имеется).

localName
String

Локальное имя нового узла атрибута, которое не может быть Empty или null.

namespaceURI
String

URI пространства имен нового узла атрибута (если имеется).

value
String

Значение нового узла атрибута. Если передается значение Empty или null, то создается пустой узел атрибута.

Исключения

Объект XPathNavigator не находится в узле элемента.

Объект XPathNavigator не поддерживает редактирование.

Примеры

В следующем примере создается новый discount атрибут для дочернего price элемента первого book элемента в contosoBooks.xml файле.

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");

navigator->CreateAttribute("", "discount", "", "1.00");

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");

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"), необходимо указать null или String.Empty для параметров префикса пространства имен и URI пространства имен. Если http://www.contoso.com/books указать в качестве параметра CreateAttribute URI пространства имен, метод автоматически создаст префикс пространства имен для нового атрибута.

  • Если созданный атрибут является узлом пространства имен, который конфликтует с объявлением пространства имен в элементе, либо потому, что выбранный префикс пространства имен используется другим объявлением пространства имен на том же область, либо потому, что выбранный префикс совпадает с выбранным префиксом элемента, но привязан к другому URI пространства имен, создается исключение.

  • Метод CreateAttribute не влияет на положение XPathNavigatorобъекта .

Применяется к