XPathNavigator.SetValue(String) Método
Definição
Define o valor do nó atual.Sets the value of the current node.
public:
virtual void SetValue(System::String ^ value);
public virtual void SetValue (string value);
abstract member SetValue : string -> unit
override this.SetValue : string -> unit
Public Overridable Sub SetValue (value As String)
Parâmetros
- value
- String
O novo valor do nó.The new value of the node.
Exceções
O parâmetro de valor é null.The value parameter is null.
O XPathNavigator está posicionado no nó raiz, em um nó de namespace ou o valor especificado é inválido.The XPathNavigator is positioned on the root node, a namespace node, or the specified value is invalid.
O XPathNavigator não dá suporte à edição.The XPathNavigator does not support editing.
Exemplos
No exemplo a seguir, o SetValue método é usado para atualizar todos os price elementos no contosoBooks.xml arquivo usando o XmlNamespaceManager objeto para resolver os prefixos de namespace na expressão XPath.In the following example, the SetValue method is used to update all price elements in the contosoBooks.xml file using the XmlNamespaceManager object to resolve namespace prefixes in the XPath expression.
XmlDocument^ document = gcnew XmlDocument();
document->Load("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();
XmlNamespaceManager^ manager = gcnew XmlNamespaceManager(navigator->NameTable);
manager->AddNamespace("bk", "http://www.contoso.com/books");
for each (XPathNavigator^ nav in navigator->Select("//bk:price", manager))
{
if(nav->Value == "11.99")
{
nav->SetValue("12.99");
}
}
Console::WriteLine(navigator->OuterXml);
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();
XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("bk", "http://www.contoso.com/books");
foreach (XPathNavigator nav in navigator.Select("//bk:price", manager))
{
if (nav.Value == "11.99")
{
nav.SetValue("12.99");
}
}
Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim manager As XmlNamespaceManager = New XmlNamespaceManager(navigator.NameTable)
manager.AddNamespace("bk", "http://www.contoso.com/books")
For Each nav As XPathNavigator In navigator.Select("//bk:price", manager)
If nav.Value = "11.99" Then
nav.SetValue("12.99")
End If
Next
Console.WriteLine(navigator.OuterXml)
O exemplo usa o arquivo contosoBooks.xml como entrada.The example takes the contosoBooks.xml file as an input.
<?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
Se o XPathNavigator estiver posicionado em um nó de elemento com conteúdo complexo (elementos filho), chamar o SetValue método substituirá os elementos filho por um nó de texto que contém o novo valor de cadeia de caracteres.If the XPathNavigator is positioned on an element node with complex content (child elements), calling the SetValue method replaces the child elements with a text node containing the new string value.
O SetValue método não pode atualizar os nós de namespace ou nó raiz.The SetValue method cannot update the root node or namespace nodes.