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

Definição

Cria um nó de atributo no nó de elemento atual usando o prefixo do namespace, nome local e URI do namespace especificados 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 existir).

localName
String

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

namespaceURI
String

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

value
String

O valor do novo nó de atributo. Se Empty ou null forem passados, cria-se um nó de atributo vazio.

Exceções

O XPathNavigator não está posicionado num nó elemento.

Não XPathNavigator suporta edição.

Exemplos

No exemplo seguinte, é criado um novo discount atributo no price elemento filho do primeiro book elemento do contosoBooks.xml ficheiro.

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 contosoBooks.xml arquivo como uma 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>

Observações

Os valores do prefixo e URI do espaço de nomes podem ser obtidos usando o LookupPrefix método ou LookupNamespace . Por exemplo, a seguinte sintaxe cria um atributo usando o namespace xmlns:bk="http://www.contoso.com/books"dentro do âmbito :

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

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

Seguem-se as notas importantes a considerar ao utilizar o CreateAttribute método.

  • Se o prefixo de espaço de nomes especificado for String.Empty ou null, o prefixo para o URI do espaço de nomes do novo atributo é obtido a partir dos espaços de nomes atuais no âmbito do escopo. Se não houver prefixo de espaço de nomes atribuído ao URI especificado no âmbito atual, um prefixo de espaço de nomes é automaticamente gerado. Por exemplo, para criar um novo atributo num elemento no namespace padrão do contosoBooks.xml ficheiro, (xmlns="http://www.contoso.com/books"), especifica null ou String.Empty para ambos, o prefixo do namespace e os parâmetros do URI do namespace. Especificar http://www.contoso.com/books como 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 espaço de nomes que entra em conflito com uma declaração de espaço de nomes no elemento, seja porque o prefixo de espaço escolhido é usado por outra declaração de espaço de nomes no mesmo escopo, seja porque o prefixo escolhido é igual ao do elemento mas está ligado a um URI de espaço de nomes diferente, é lançada uma exceção.

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

Aplica-se a