libxmlライブラリのxmlElementType
1397 ワード
libxmlライブラリのxmlElementType
xmlファイルを解析してDOMノードを巡回する場合は、nodePtr->type==XML_ELEMENT_NODEはノードの属性、内容を取りに行きます.
xmlElementTypeタイプは次のように定義されます.
使用法は次のとおりです.
xmlファイルを解析してDOMノードを巡回する場合は、nodePtr->type==XML_ELEMENT_NODEはノードの属性、内容を取りに行きます.
xmlElementTypeタイプは次のように定義されます.
typedef enum {
XML_ELEMENT_NODE= 1,
XML_ATTRIBUTE_NODE= 2,
XML_TEXT_NODE= 3,
XML_CDATA_SECTION_NODE= 4,
XML_ENTITY_REF_NODE= 5,
XML_ENTITY_NODE= 6,
XML_PI_NODE= 7,
XML_COMMENT_NODE= 8,
XML_DOCUMENT_NODE= 9,
XML_DOCUMENT_TYPE_NODE= 10,
XML_DOCUMENT_FRAG_NODE= 11,
XML_NOTATION_NODE= 12,
XML_HTML_DOCUMENT_NODE= 13,
XML_DTD_NODE= 14,
XML_ELEMENT_DECL= 15,
XML_ATTRIBUTE_DECL= 16,
XML_ENTITY_DECL= 17,
XML_NAMESPACE_DECL= 18,
XML_XINCLUDE_START= 19,
XML_XINCLUDE_END= 20
#ifdef LIBXML_DOCB_ENABLED
,XML_DOCB_DOCUMENT_NODE= 21
#endif
} xmlElementType;
使用法は次のとおりです.
xmlNodePtr root = xmlDocGetRootElement(doc);
if (root == NULL) {
xmlFreeDoc(doc);
}
xmlNodePtr nodePtr = root->xmlChildrenNode;
while (nodePtr) {
// XML_ELEMENT_NODE
if (nodePtr->type == XML_ELEMENT_NODE) {
xmlChar *attrName = xmlGetProp(nodePtr, (const xmlChar *)"name");
xmlChar *attrPort = xmlGetProp(nodePtr, (const xmlChar *)"port");
xmlChar *attrDeviceIP= xmlGetProp(nodePtr, (const xmlChar *)"deviceIp");
}
nodePtr = nodePtr->next;
}
xmlFreeDoc(doc);