XPathNavigator.CreateAttribute(String, String, String, String) Método

Definição

Cria um nó de atributo no nó do elemento atual usando o prefixo de namespace, o nome local e o URI de namespace especificado com o valor especificado.

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)

Parâmetros

prefix
String

O prefixo de namespace do novo nó de atributo (se houver).

localName
String

O nome local do novo nó de atributo que não pode ser Empty nem null.

namespaceURI
String

O URI de namespace do novo nó de atributo (se houver).

value
String

O valor do novo nó de atributo. Se Empty ou null for passado, um nó de atributo vazio será criado.

Exceções

O XPathNavigator não está posicionado em um nó do elemento.

O XPathNavigator não dá suporte à edição.

Exemplos

No exemplo a seguir, um novo discount atributo é criado no price elemento filho do primeiro book elemento no contosoBooks.xml arquivo.

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)

O exemplo usa o arquivo contosoBooks.xml como entrada.

<?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>  

Comentários

Os valores de prefixo e URI de namespace podem ser obtidos usando o LookupPrefix método ou LookupNamespace . Por exemplo, a sintaxe a seguir cria um atributo usando o namespace xmlns:bk="http://www.contoso.com/books"no escopo :

editor.CreateAttribute(navigator.Prefix, "attributeName", LookupNamespace(navigator.Prefix), "text")  

Isso cria o novo atributo <bk:element attributeName="text"/> no elemento atual.

Veja a seguir notas importantes a serem consideradas ao usar o CreateAttribute método .

  • Se o prefixo de namespace especificado for String.Empty ou null, o prefixo para o URI do namespace do novo atributo será obtido dos namespaces atuais no escopo. Se não houver nenhum prefixo de namespace atribuído ao URI do namespace especificado no escopo atual, um prefixo de namespace será gerado automaticamente. Por exemplo, para criar um novo atributo em um elemento no namespace padrão do contosoBooks.xml arquivo (xmlns="http://www.contoso.com/books" ), especifique null ou String.Empty para os parâmetros de URI de namespace e prefixo de namespace. Especificar http://www.contoso.com/books como o parâmetro URI do namespace fará com que o CreateAttribute método gere automaticamente um prefixo de namespace para o novo atributo.

  • Se o novo atributo criado for um nó de namespace que está em conflito com uma declaração de namespace no elemento , seja porque o prefixo de namespace escolhido é usado por outra declaração de namespace no mesmo escopo ou porque o prefixo escolhido é o mesmo que o do elemento, mas está associado a um URI de namespace diferente, uma exceção é gerada.

  • O CreateAttribute método não afeta a posição do XPathNavigator.

Aplica-se a