Добавляет новый дочерний узел в древо 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); //Вывод дочерних узлов на печать } |
Используется для объекта
Доступность
CTRL. В каждом сценарии, в котором используется расширение «CtrlXml» (#uses «CtrlXml»). |
См. также