xmlAppendChild()

Добавляет новый дочерний узел в древо DOM в виде дочернего объекта указанного узла. Дополнительно можно задать значение узла.

Краткое описание

int xmlAppendChild(unsigned doc, int node, int nodeType [, string value]);

Параметры

ПараметрЗначение
docИдентификатор документа. Ссылка на весь XML-документ (возвращаемое значение xmlNewDocument()).
nodeИдентификатор дочернего узла.
nodeTypeТип узла. См. константы ниже.
valueНеобязательный параметр.

Значение дочернего узла.

Возвращаемое значение

В случае возникновения ошибок функция возвращает -1. В противном случае функция возвращает идентификатор созданного нового узла.

Описание

Добавляет новый дочерний узел в древо DOM в виде дочернего объекта указанного узла. Дополнительно можно задать значение узла.

Если значение узла равно -1, дочерний узел создается в виде корневого узла (дочерний узел документа).
 
Указанный узел имеет одну из следующих констант типа узла:
Константа
XML_ATTRIBUTE_NODE
XML_CDATA_SECTION_NODE
XML_COMMENT_NODE
XML_DOCUMENT_NODE
XML_DOCUMENT_FRAGMENT_NODE
XML_DOCUMENT_TYPE_NODE
XML_ELEMENT_NODE
XML_ENTITY_NODE
XML_ENTITY_REFERENCE_NODE
XML_NOTATION_NODE
XML_PROCESSING_INSTRUCTION_NODE
XML_TEXT_NODE
ПРИМЕР
 Пример демонстрирует создание нового документа с помощью «xmlNewDocument()» и добавляет новые узлы с помощью «xmlAppendChild()», а также выводит узлы на печать посредством «xmlChildNodes()».

#uses «CtrlXml»
 
main()
{
   dyn_uint nodes;
   string nNameP, nName1,nName2, nName3, nName4, nName5;
   unsigned docNum = xmlNewDocument();
   //Создание нового документа
   xmlAppendChild(docNum, -1, XML_COMMENT_NODE, «my fine new comment»);
//Добавление нового узла
 
   int node = xmlAppendChild(docNum, -1, XML_ELEMENT_NODE, «Parent node»);
//Добавление нового узла
   nNameP = xmlNodeName(docNum, node);
   int PNode = xmlParentNode(docNum, node);
   DebugN(«Parent node:», nNameP);


   xmlAppendChild(docNum,PNode, XML_ELEMENT_NODE, «First element»);
   nName1 = xmlNodeName(docNum, node);
   DebugN(«Node 1:», nName1);
 
   int node2 = xmlAppendChild(docNum, -1, XML_ELEMENT_NODE, «Second element»);
   nName2 = xmlNodeName(docNum, node2);
   DebugN(«Node 2:», nName2);
 
   int j = xmlSetElementAttribute(docNum, node2, «Attribute1», «Example Attribute»);
//Определение нового атрибута
   int node3 = xmlAppendChild(docNum, node2, XML_ELEMENT_NODE, «Third element»);
   nName3 = xmlNodeName(docNum,node3);
   DebugN(«Node 3:», nName3);
 

   int i = xmlSetNodeValue(docNum, nName2, «And a node value»);
//Установка нового значения
   int node4 = xmlAppendChild(docNum, -1, XML_ELEMENT_NODE, «Fourth element»);
   nName4 = xmlNodeName(docNum, node4);
   DebugN(«Node 4:», nName4);

   int node3 = xmlAppendChild(docNum, -1, XML_ELEMENT_NODE, «Fifth element»);
   xmlSetElementAttribute(docNum, node3, «Attribute2», «A second example attribute»);
   int k = xmlChildNodes(docNum, PNode, nodes);
   DebugN(«xmlChildNodes successful:», k, «List of the nodes:», nodes);
//Вывод дочерних узлов на печать
}

Используется для объекта

Расширение XML языка программирования Control

Доступность

CTRL. В каждом сценарии, в котором используется расширение «CtrlXml» (#uses «CtrlXml»).

См. также

xmlCloseDocument()xmlDocumentFromFile()xmlDocumentFromString()xmlDocumentToFile()xmlDocumentToString()xmlElementAttributes()xmlFirstChild()xmlNewDocument()xmlNextSibling()xmlNodeName()xmlNodeType()xmlNodeValue()xmlParentNode()xmlSetElementAttribute()xmlSetNodeValue()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *