Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa XML Document Object Model (DOM) jest reprezentacją dokumentu XML w pamięci. DOM umożliwia programistyczne odczytywanie, manipulowanie i modyfikowanie dokumentu XML. Klasa XmlReader także odczytuje XML; jednak zapewnia dostęp wyłącznie sekwencyjny, tylko do odczytu, bez buforowania. Oznacza to, że nie ma możliwości edytowania wartości atrybutu lub zawartości elementu albo możliwości wstawiania i usuwania węzłów z elementem XmlReader. Edytowanie jest podstawową funkcją modelu DOM. Jest to typowy i ustrukturyzowany sposób, w jaki dane XML są reprezentowane w pamięci, chociaż rzeczywiste dane XML są przechowywane w sposób liniowy, gdy znajdują się w pliku lub pochodzące z innego obiektu. Poniżej przedstawiono dane XML.
Dane wejściowe
<?xml version="1.0"?>
<books>
<book>
<author>Carson</author>
<price format="dollar">31.95</price>
<pubdate>05/01/2001</pubdate>
</book>
<pubinfo>
<publisher>MSPress</publisher>
<state>WA</state>
</pubinfo>
</books>
Na poniższej ilustracji pokazano, jak pamięć jest ustrukturyzowana, gdy te dane XML są odczytywane do struktury DOM.
Struktura dokumentu XML
W strukturze dokumentu XML każdy okrąg na tej ilustracji reprezentuje węzeł, który jest nazywany obiektem XmlNode . Obiekt XmlNode jest obiektem podstawowym w drzewie DOM. Klasa XmlDocument , która rozszerza xmlNode, obsługuje metody wykonywania operacji na dokumencie jako całości (na przykład załadowanie go do pamięci lub zapisanie kodu XML w pliku. Ponadto funkcja XmlDocument umożliwia wyświetlanie węzłów w całym dokumencie XML i manipulowanie nimi. Zarówno XmlNode , jak i XmlDocument mają ulepszenia wydajności i użyteczności oraz mają metody i właściwości:
Uzyskaj dostęp do węzłów i zmodyfikuj węzły specyficzne dla modelu DOM, takie jak węzły elementów, węzły odwołania do jednostek itd.
Pobierz całe węzły oraz informacje, które zawierają, takie jak tekst w węźle elementu.
Obiekty węzłów mają zestaw metod i właściwości, a także podstawowe i dobrze zdefiniowane cechy. Niektóre z tych cech to:
Węzły mają jeden węzeł nadrzędny, węzeł nadrzędny będący węzłem bezpośrednio nad nimi. Jedynymi węzłami, które nie mają elementu nadrzędnego, są korzeń dokumentu, ponieważ jest to węzeł najwyższego poziomu i zawiera sam dokument oraz fragmenty dokumentu.
Większość węzłów może mieć wiele węzłów podrzędnych, które są węzłami bezpośrednio poniżej nich. Poniżej znajduje się lista typów węzłów, które mogą mieć węzły podrzędne.
Dokument
DocumentFragment
Odniesienie do jednostki
Pierwiastek
Atrybut
Węzły XmlDeclaration, Notation, Entity, CDATASection, Text, Comment, ProcessingInstruction i DocumentType nie mają węzłów podrzędnych.
Węzły, które znajdują się na tym samym poziomie, reprezentowane na diagramie przez węzły książka i pubinfo, są węzłami potomnymi.
Jedną z cech modelu DOM jest sposób obsługi atrybutów. Atrybuty nie są węzłami należącymi do relacji rodzic-dziecko-rodzeństwo. Atrybuty są uważane za właściwość węzła elementu i składają się z nazwy i pary wartości. Jeśli na przykład masz dane XML składające się z format="dollar
powiązanego z elementem price
, wyraz format
to nazwa, a wartość atrybutu format
to dollar
. Aby pobrać format="dollar"
atrybut węzła price , należy wywołać metodę GetAttribute , gdy kursor znajduje się w węźle price
elementu. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do atrybutów w modelu DOM.
W miarę odczytywania kodu XML do pamięci węzły są tworzone. Jednak nie wszystkie węzły są tego samego typu. Element w formacie XML ma inne reguły i składnię niż instrukcja przetwarzania. W związku z tym w miarę odczytywania różnych danych typ węzła jest przypisywany do każdego węzła. Ten typ węzła określa charakterystykę i funkcjonalność węzła.
Aby uzyskać więcej informacji na temat typów węzłów generowanych w pamięci, zobacz Typy węzłów XML. Aby uzyskać więcej informacji na temat obiektów utworzonych w drzewie węzłów, zobacz Mapowanie hierarchii obiektów na dane XML.
Firma Microsoft rozszerzyła interfejsy API dostępne w World Wide Web Consortium (W3C) DOM Level 1 oraz Level 2, aby ułatwić pracę z dokumentem XML. Chociaż w pełni obsługują standardy W3C, dodatkowe klasy, metody i właściwości dodają funkcjonalność poza tym, co można zrobić przy użyciu modelu DOM XML W3C. Nowe klasy umożliwiają uzyskiwanie dostępu do danych relacyjnych, zapewniając metody synchronizowania z danymi ADO.NET, jednocześnie uwidaczniając dane jako XML. Aby uzyskać więcej informacji, zobacz Synchronizowanie zestawu danych za pomocą elementu XmlDataDocument.
DOM jest najbardziej przydatny do wczytywania danych XML do pamięci, aby zmiany jej struktury, dodać lub usunąć węzły, lub zmodyfikować dane przechowywane przez węzeł, jak tekst zawarty w elemencie. Niemniej jednak, istnieją inne klasy, które w pewnych scenariuszach działają szybciej niż DOM. W celu szybkiego, niebuforowanego, jednokierunkowego dostępu strumieniowego do plików XML, należy użyć elementów XmlReader i XmlWriter. Jeśli potrzebujesz dostępu losowego z modelem kursora i narzędziem XPath, użyj klasy XPathNavigator.