Přidat uzly XML DOM
Zkuste si to sami - příklady
Níže uvedené příklady používají soubor XML books.xml .
Tento příklad používá appendChild() k přidání podřízeného uzlu k existujícímu uzlu.
Tento příklad používá insertBefore() k vložení uzlu před zadaný podřízený uzel.
Tento příklad používá metodu setAttribute() k přidání nového atributu.
Tento příklad používá insertData() k vložení dat do existujícího textového uzlu.
Přidat uzel - appendChild()
Metoda appendChild() přidá podřízený uzel k existujícímu uzlu.
Nový uzel se přidá (připojí) za všechny existující podřízené uzly.
Poznámka: Pokud je důležitá pozice uzlu, použijte insertBefore().
Tento fragment kódu vytvoří prvek (<edition>) a přidá jej za poslední podřízený prvek prvního prvku <book>:
Příklad
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Vytvořte nový uzel <edice>
- Připojte uzel k prvnímu prvku <book>
Tento fragment kódu dělá totéž jako výše, ale nový prvek je přidán s hodnotou:
Příklad
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Vytvořte nový uzel <edice>
- Vytvořte nový textový uzel „nejprve“
- Připojte textový uzel k uzlu <edice>
- Připojte uzel <addition> k prvku <book>
Vložit uzel - insertBefore()
Metoda insertBefore() vloží uzel před určený podřízený uzel.
Tato metoda je užitečná, když je důležitá poloha přidaného uzlu:
Příklad
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Vytvořte nový uzel prvku <book>
- Vložte nový uzel před poslední uzel prvku <book>
Pokud je druhý parametr insertBefore() null, bude nový uzel přidán za poslední existující podřízený uzel.
x.insertBefore(newNode,null) a x.appendChild(newNode) oba připojí nový podřízený uzel k x.
Přidat nový atribut
Metoda setAttribute() nastavuje hodnotu atributu.
Příklad
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ byl načten do xmlDoc
- Nastavte hodnotu atributu "edice" na "first" pro první prvek <book>
Neexistuje žádná metoda nazvaná add Attribute()
Pokud atribut neexistuje, setAttribute() vytvoří nový atribut.
Poznámka: Pokud atribut již existuje, metoda setAttribute() přepíše existující hodnotu.
Přidat text do textového uzlu - insertData()
Metoda insertData() vloží data do existujícího textového uzlu.
Metoda insertData() má dva parametry:
- offset – kde začít vkládat znaky (začíná od nuly)
- string – Řetězec, který se má vložit
Následující fragment kódu přidá „Easy“ do textového uzlu prvního prvku <title> načteného XML:
Příklad
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");