XPathNavigator.SetValue(String) Yöntem

Tanım

Geçerli düğümün değerini ayarlar.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)

Parametreler

value
String

Düğümün yeni değeri.The new value of the node.

Özel durumlar

Değer parametresi null .The value parameter is null.

XPathNavigatorKök düğümüne, bir ad alanı düğümüne veya belirtilen değere konumlandırılmış.The XPathNavigator is positioned on the root node, a namespace node, or the specified value is invalid.

, XPathNavigator Düzenlemesini desteklemez.The XPathNavigator does not support editing.

Örnekler

Aşağıdaki örnekte, SetValue yöntemi price contosoBooks.xml XmlNamespaceManager XPath ifadesinde ad alanı öneklerini çözümlemek için nesnesini kullanarak dosyadaki tüm öğeleri güncelleştirmek için kullanılır.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)

Örnek, contosoBooks.xml dosyayı bir giriş olarak alır.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>  

Açıklamalar

  • XPathNavigatorKarmaşık içerik (alt öğeler) içeren bir öğe düğümüne konumlandırılmışsa yöntemi çağırmak, SetValue alt öğeleri yeni dize değerini içeren bir metin düğümü ile değiştirir.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.

  • SetValueYöntem kök düğümü veya ad alanı düğümlerini güncelleştiremiyor.The SetValue method cannot update the root node or namespace nodes.

Şunlara uygulanır