Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Metoda ImportNode to mechanizm, za pomocą którego węzeł lub całe poddrzewo węzła jest kopiowane z jednego obiektu XmlDocument do innego. Węzeł zwrócony z wywołania jest kopią węzła z dokumentu źródłowego, w tym wartości atrybutów, nazwy węzła, typu węzła i wszystkich atrybutów związanych z przestrzenią nazw, takich jak prefiks, nazwa lokalna i przestrzeń nazw Uniform Resource Identifier (URI). Dokument źródłowy nie został zmieniony. Po zaimportowaniu węzła nadal trzeba dodać go do drzewa przy użyciu jednej z metod używanych do wstawiania węzłów.
Gdy węzeł jest dołączony do nowego dokumentu, nowy dokument jest właścicielem węzła. Powód jest taki, że każdy węzeł ma dokument właściciela, gdy jest tworzony, nawet jeśli węzły są tworzone w oddzielnych fragmentach dokumentu. Jest to wymaganie modelu DOM (XML Document Object Model) i jest wymuszane przez projektowanie fabryczne w klasie XmlDocument. Na przykład CreateElement jest jedynym sposobem tworzenia nowych węzłów.
W zależności od typu zaimportowanego węzła i wartości parametru deep, dodatkowe informacje są kopiowane, jak to konieczne. Ta metoda próbuje zdublować zachowanie oczekiwane, jeśli fragment kodu XML lub źródła HTML został skopiowany z jednego dokumentu do innego, co oznacza fakt, że w przypadku kodu XML dwa dokumenty mogą mieć różne definicje typu dokumentu (DTD).
W poniższej tabeli opisano konkretne zachowanie dla każdego typu węzła, który można zaimportować.
| Typ węzła | parametr deep ma wartość true | parametr deep ma wartość false |
|---|---|---|
| XmlAttribute | Właściwość Specified jest ustawiona na true dla atrybutu XmlAttribute. Elementy potomne źródłowego atrybutu XmlAttribute są rekursywnie importowane, a wynikowe węzły są ponownie zmontowane w celu utworzenia odpowiedniego poddrzewa. | Parametr deep nie ma zastosowania do węzłów XmlAttribute , ponieważ zawsze niosą ze sobą węzły podrzędne podczas importowania. |
| XmlCDataSection | Kopiuje węzeł, w tym jego dane. | Kopiuje węzeł, w tym jego dane. |
| XmlComment | Kopiuje węzeł, w tym jego dane. | Kopiuje węzeł, w tym jego dane. |
| FragmentDokumentuXML | Elementy podrzędne węzła źródłowego są rekursywnie importowane, a wynikowe węzły są ponownie zmontowane w celu utworzenia odpowiedniego poddrzewa. | Zostanie utworzony pusty element XmlDocumentFragment . |
| XmlDocumentType | Kopiuje węzeł, w tym jego dane.* | Kopiuje węzeł, w tym jego dane.* |
| Element Xml | Elementy potomne elementu źródłowego są rekursywnie importowane, a wynikowe węzły są ponownie zmontowane w celu utworzenia odpowiedniego poddrzewa. Nuta: Atrybuty domyślne nie są kopiowane. Jeśli dokument importowany do definiuje atrybuty domyślne dla tej nazwy elementu, zostaną one przypisane. | Określone węzły atrybutów elementu źródłowego są importowane, a wygenerowane węzły XmlAttribute są dołączone do nowego elementu. Węzły podrzędne nie są kopiowane. Nuta: Atrybuty domyślne nie są kopiowane. Jeśli dokument importowany do definiuje atrybuty domyślne dla tej nazwy elementu, zostaną one przypisane. |
| XmlEntityReference | Ponieważ dokumenty źródłowe i docelowe mogą mieć zdefiniowane inaczej jednostki, ta metoda kopiuje tylko węzeł XmlEntityReference . Tekst zastępczy nie jest dołączony. Jeśli dokument docelowy ma zdefiniowaną jednostkę, zostanie przypisana jego wartość. | Ponieważ dokumenty źródłowe i docelowe mogą mieć zdefiniowane inaczej jednostki, ta metoda kopiuje tylko węzeł XmlEntityReference . Tekst zastępczy nie jest dołączony. Jeśli dokument docelowy ma zdefiniowaną jednostkę, zostanie przypisana jego wartość. |
| Instrukcja przetwarzania XML | Kopiuje wartość docelową i dane z zaimportowanego węzła. | Kopiuje wartość docelową i dane z zaimportowanego węzła. |
| Tekst xml | Kopiuje węzeł, w tym jego dane. | Kopiuje węzeł, w tym jego dane. |
| XmlSignificantWhitespace | Kopiuje węzeł, w tym jego dane. | Kopiuje węzeł, w tym jego dane. |
| XmlWhitespace | Kopiuje węzeł, w tym jego dane. | Kopiuje węzeł, w tym jego dane. |
| Deklaracja XML | Kopiuje wartość docelową i dane z zaimportowanego węzła. | Kopiuje wartość docelową i dane z zaimportowanego węzła. |
| Wszystkie inne typy węzłów | Nie można zaimportować tych typów węzłów. | Nie można zaimportować tych typów węzłów. |
Uwaga / Notatka
Mimo że można zaimportować węzły DocumentType, dokument może mieć tylko jeden typ Dokumentu. Dlatego po zaimportowaniu typu dokumentu przed wstawieniem go do drzewa należy upewnić się, że w dokumencie nie ma żadnego typu dokumentu. Aby uzyskać informacje na temat usuwania węzłów, zobacz Usuwanie węzłów, zawartości i wartości z dokumentu XML.