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 objeto XmlWriter 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 objeto XmlWriter usado para criar novos atributos no elemento atual.
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
e atributos de currency
são criados no elemento filho de price
do primeiro elemento de book
no arquivo de contosoBooks.xml
usando o objeto de XmlWriter retornado pelo método de CreateAttributes .
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");
XmlWriter^ attributes = navigator->CreateAttributes();
attributes->WriteAttributeString("discount", "1.00");
attributes->WriteAttributeString("currency", "USD");
attributes->Close();
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");
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 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
Veja a seguir observações importantes a serem consideradas ao usar o CreateAttributes método .
Quando o XPathNavigator é 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
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 de 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.xml
arquivo (xmlns="http://www.contoso.com/books"
), especifiquenull
ou String.Empty para os parâmetros de URI de namespace e prefixo de namespace. Especificarhttp://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 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.