XPathNavigator.CreateAttribute(String, String, String, String) Metoda

Definicja

Tworzy węzeł atrybutu w bieżącym węźle elementu przy użyciu prefiksu przestrzeni nazw, nazwy lokalnej i identyfikatora URI przestrzeni nazw określonej z określoną wartością.

public:
 virtual void CreateAttribute(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void CreateAttribute (string prefix, string localName, string namespaceURI, string value);
public virtual void CreateAttribute (string? prefix, string localName, string? namespaceURI, string? value);
abstract member CreateAttribute : string * string * string * string -> unit
override this.CreateAttribute : string * string * string * string -> unit
Public Overridable Sub CreateAttribute (prefix As String, localName As String, namespaceURI As String, value As String)

Parametry

prefix
String

Prefiks przestrzeni nazw nowego węzła atrybutu (jeśli istnieje).

localName
String

Lokalna nazwa nowego węzła atrybutu, który nie może Empty lub null.

namespaceURI
String

Identyfikator URI przestrzeni nazw dla nowego węzła atrybutu (jeśli istnieje).

value
String

Wartość nowego węzła atrybutu. Jeśli Empty węzeł atrybutu lub null zostanie przekazany, zostanie utworzony pusty węzeł atrybutu.

Wyjątki

Element XPathNavigator nie jest umieszczony w węźle elementu.

Element XPathNavigator nie obsługuje edycji.

Przykłady

W poniższym przykładzie nowy discount atrybut jest tworzony w elemecie price podrzędnym pierwszego book elementu w contosoBooks.xml pliku.

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

navigator->CreateAttribute("", "discount", "", "1.00");

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

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

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

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

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

W przykładzie plik jest contosoBooks.xml pobierany jako dane wejściowe.

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

Uwagi

Prefiks przestrzeni nazw i wartości identyfikatora URI można uzyskać przy użyciu LookupPrefix metody lub LookupNamespace . Na przykład następująca składnia tworzy atrybut przy użyciu przestrzeni nazw xmlns:bk="http://www.contoso.com/books"w zakresie :

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

Spowoduje to utworzenie nowego atrybutu <bk:element attributeName="text"/> w bieżącym elemencie.

Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z CreateAttribute metody .

  • Jeśli określony prefiks przestrzeni nazw to String.Empty lub null, prefiks identyfikatora URI przestrzeni nazw nowego atrybutu jest uzyskiwany z bieżących przestrzeni nazw w zakresie. Jeśli nie ma prefiksu przestrzeni nazw przypisanego do określonego identyfikatora URI przestrzeni nazw w bieżącym zakresie, prefiks przestrzeni nazw jest generowany automatycznie. Aby na przykład utworzyć nowy atrybut dla elementu w domyślnej przestrzeni nazw contosoBooks.xml pliku (xmlns="http://www.contoso.com/books"), należy określić null lub String.Empty dla parametrów prefiksu przestrzeni nazw i identyfikatora URI przestrzeni nazw. Określenie http://www.contoso.com/books jako parametru identyfikatora URI przestrzeni nazw spowoduje CreateAttribute , że metoda automatycznie wygeneruje prefiks przestrzeni nazw dla nowego atrybutu.

  • Jeśli nowy atrybut utworzony jest węzłem przestrzeni nazw, który powoduje konflikt z deklaracją przestrzeni nazw w elemecie , ponieważ wybrany prefiks przestrzeni nazw jest używany przez inną deklarację przestrzeni nazw w tym samym zakresie lub dlatego, że wybrany prefiks jest taki sam jak prefiks elementu, ale jest powiązany z innym identyfikatorem URI przestrzeni nazw, zgłaszany jest wyjątek.

  • Metoda CreateAttribute nie ma wpływu na położenie XPathNavigatorobiektu .

Dotyczy