XPathNavigator.CreateAttributes Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um XmlWriter objeto usado para criar novos atributos no elemento atual.
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
Retornos
Um XmlWriter objeto usado para criar novos atributos no elemento atual.
Exceções
O XPathNavigator não está posicionado em um nó de elemento.
O XPathNavigator não dá suporte à edição.
Exemplos
No exemplo a seguir, os novos atributos discount e currency são criados no elemento filho price do primeiro elemento book no arquivo contosoBooks.xml usando o objeto XmlWriter retornado do método CreateAttributes.
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)
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>
Comentários
Veja a seguir notas importantes a serem consideradas ao usar o CreateAttributes método.
Quando o XPathNavigator elemento é posicionado em um elemento, os novos atributos criados pelo XPathNavigator método são colocados no final da lista de atributos do elemento atual.
Os novos atributos não são inseridos até que o Close método do XmlWriter objeto seja chamado.
Se o prefixo de namespace especificado for String.Empty ou
nullo prefixo para o URI do namespace do novo atributo for 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 docontosoBooks.xmlarquivo, (xmlns="http://www.contoso.com/books"), especifiquenullou String.Empty para os parâmetros de URI do namespace e do prefixo do namespace. Especificarhttp://www.contoso.com/bookscomo 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 entra 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 XmlWriter objeto retornado só pode ser usado para criar atributos. Chamar outros XmlWriter métodos de objeto que não criam atributos gera uma exceção.
O CreateAttributes método não afeta a posição do XPathNavigator.