Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

pugixml una biblioteca de procesamiento XML liviana con soporte XPATH

Resumen

En este artículo explicaré cómo usar pugixml para procesar datos XML. Con esta biblioteca de procesamiento puedes usar un DOM analizador para leer y manipular nodos y el XPATH notación para consultar nodos.

Cómo construir

Para compilar las fuentes, debe descargar una versión de https://github.com/zeux/pugixml/tags. Ahora puede realizar una compilación cruzada de la fuente con el PLCnext cadena de herramientas proporcionada por Phoenix Contact . El siguiente fragmento de código mostrará el cmake script para compilar de forma cruzada.


    #Please set the environment variables to your needs 

    cmake \
    -G "Unix Malkefiles" \
    -D CMAKE_BUILD_TYPE=Release \
    -D BUILD_TESTING=OFF \
    -D BUILD_SHARED_LIBS=ON \
    -D "CMAKE_STAGING_PREFIX=${CMAKE_STAGING_PREFIX}" \
    -D "CMAKE_INSTALL_PREFIX=${CMAKE_STAGING_PREFIX}" \
-D "CMAKE_TOOLCHAIN_FILE=${ARP_TOOLCHAIN_FILE}" \
-D "ARP_TOOLCHAIN_ROOT= ${ARP_TOOLCHAIN_ROOT}" \ -D BUILD_TESTS=OFF \ -S "${SOURCE_DIRECTORY}" \ -B "${BUILD_DIRECTORY}" cmake --build "${BUILD_DIRECTORY}" --target install

Cómo usar

Primero tienes que integrar el C++ header y la biblioteca en su entorno de proyecto. Cuando termines, puedes usar el pugixml procesamiento.

Cargar un documento


    pugi::xml_document doc;
    pugi::xml_parse_result result = doc.load_file("data.xml");

    ...

Atravesar subnodos desde un nodo determinado

Puede atravesar a través del árbol DOM y también puede manipular los nodos.


    pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");

    //traversing subnodes
    for (pugi::xml_node tool: tools)
    {
        std::cout << " " << tool.name();

        //getting attributes
        for (pugi::xml_attribute attr: tool.attributes())
        {
            std::cout << " " << attr.name() << "=" << attr.value();
        }
    }

Uso de XPATH

XPATH le da la libertad de acceder a nodos y atributos muy fácilmente.


    //accessing node
    pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");
    pugi::xpath_node_set all_tools = doc.select_nodes("//Tool");

    //accessing attibutes
    auto docIdNode = doc.select_node("@ID");
    auto docIdNode_One = doc.select_node("//Tool[@ID==1]");

Guardando documento XML

Puede guardar el documento XML.


   doc.save_file("new_data.xml");

Más información

Si está interesado en obtener más información sobre pugixml puede consultar los siguientes enlaces:

Licencia

La biblioteca se publica bajo licencia MIT


Tecnología Industrial

  1. Circuito con un interruptor
  2. Aritmética con notación científica
  3. Estructuras de soporte para impresión 3D con metal:un enfoque más sencillo
  4. Preguntas y respuestas con un arquitecto de soluciones de Industria 4.0
  5. Renesas:MCU RX72M con soporte EtherCAT para aplicaciones industriales
  6. Mapa en la biblioteca de plantillas estándar (STL) de C++ con ejemplo de impresión
  7. Función calloc() en la biblioteca C con programa EJEMPLO
  8. Función free () en la biblioteca C:¿Cómo usar? Aprende con el Ejemplo
  9. Python - Procesamiento XML
  10. ¿Cómo mecanizar joyas con mecanizado CNC?
  11. Linq la biblioteca de procesamiento de listas para C++