XPathNavigator.CreateAttribute(String, String, String, String) メソッド

定義

指定された値で指定した名前空間プレフィックス、ローカル名、および名前空間 URI を使用して、現在の要素ノードに属性ノードを作成します。

public virtual void CreateAttribute (string prefix, string localName, string namespaceURI, string value);
public virtual void CreateAttribute (string? prefix, string localName, string? namespaceURI, string? value);

パラメーター

prefix
String

新しい属性ノードの名前空間プレフィックス (存在する場合)。

localName
String

新しい属性ノードのローカル名。これには Empty および null を設定できません。

namespaceURI
String

新しい属性ノードの名前空間 URI (存在する場合)。

value
String

新しい属性ノードの値。 Empty または null を渡すと、空の属性ノードが作成されます。

例外

XPathNavigator が要素ノードに配置されていません。

XPathNavigator では、編集はサポートされていません。

次の例では、ファイル内の最初bookの要素のprice子要素に新しいdiscount属性がcontosoBooks.xml作成されます。

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");

navigator.CreateAttribute("", "discount", "", "1.00");

navigator.MoveToParent();
Console.WriteLine(navigator.OuterXml);

この例は、contosoBooks.xml ファイルを入力として使用します。

<?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>  

注釈

名前空間プレフィックスと URI 値は、 メソッドまたは LookupNamespace メソッドをLookupPrefix使用して取得できます。 たとえば、次の構文では、スコープ内名前空間 xmlns:bk="http://www.contoso.com/books"を使用して 属性を作成します。

editor.CreateAttribute(navigator.Prefix, "attributeName", LookupNamespace(navigator.Prefix), "text")  

これにより、現在の要素に新しい属性 <bk:element attributeName="text"/> が作成されます。

メソッドを使用する場合に考慮すべき重要な注意事項を次に CreateAttribute 示します。

  • 指定された名前空間プレフィックスが または nullの場合、String.Empty新しい属性の名前空間 URI のプレフィックスは、スコープ内の現在の名前空間から取得されます。 現在のスコープで指定された名前空間 URI に名前空間プレフィックスが割り当てられていない場合は、名前空間プレフィックスが自動的に生成されます。 たとえば、ファイルの既定の名前空間内の要素に新しい属性を作成するには(xmlns="http://www.contoso.com/books")、名前空間プレフィックスと名前空間 URI パラメーターのcontosoBooks.xml両方に または String.Empty を指定nullします。 名前空間 URI パラメーターとして を http://www.contoso.com/books 指定すると、メソッドは CreateAttribute 新しい属性の名前空間プレフィックスを自動生成します。

  • 選択した名前空間プレフィックスが同じスコープの別の名前空間宣言によって使用されているか、選択したプレフィックスが要素の同じであり、別の名前空間 URI にバインドされているために、作成された新しい属性が要素の名前空間宣言と競合する名前空間ノードである場合は、例外がスローされます。

  • メソッドは CreateAttribute の位置には XPathNavigator影響しません。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1