XPathNavigator.SetValue(String) XPathNavigator.SetValue(String) XPathNavigator.SetValue(String) XPathNavigator.SetValue(String) Method

定義

現在のノードの値を設定します。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)

パラメーター

value
String String String String

ノードの新しい値。The new value of the node.

例外

値パラメーターが null です。The value parameter is null.

XPathNavigator がルート ノードまたは名前空間ノードに配置されているか、指定された値が無効です。The XPathNavigator is positioned on the root node, a namespace node, or the specified value is invalid.

XPathNavigator は編集をサポートしていません。The XPathNavigator does not support editing.

SetValue次の例では、メソッドを使用して、XPath 式の名前空間プレフィックスXmlNamespaceManagerを解決するために、オブジェクトを使用してcontosoBooks.xmlファイル内のすべてpriceの要素を更新します。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)

この例は、contosoBooks.xml ファイルを入力として使用します。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>  

注釈

  • が複合コンテンツ (子要素) を持つ要素ノードに配置されている場合SetValue 、メソッドを呼び出すと、子要素が新しい文字列値を含むテキストノードに置き換えられます。 XPathNavigatorIf 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.

  • SetValueメソッドは、ルートノードまたは名前空間ノードを更新できません。The SetValue method cannot update the root node or namespace nodes.

適用対象