산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

pugixml XPATH를 지원하는 경량 XML 처리 라이브러리

추상

이 기사에서는 pugixml을 사용하는 방법을 설명합니다. XML 데이터를 처리합니다. 이 처리 라이브러리를 사용하면 DOM를 사용할 수 있습니다. 노드와 XPATH를 읽고 조작하는 파서 쿼리 노드에 대한 표기법.

제작 방법

소스를 빌드하려면 https://github.com/zeux/pugixml/tags에서 릴리스를 다운로드해야 합니다. 이제 PLCnext를 사용하여 소스를 교차 컴파일할 수 있습니다. Phoenix Contact에서 제공하는 도구 모음 . 다음 코드 스니펫은 cmake script을 표시합니다. 크로스 컴파일합니다.


    #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++ header를 통합해야 합니다. 프로젝트 환경의 라이브러리. 완료되면 pugixml을 사용할 수 있습니다. 처리 중입니다.

문서 로드


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

    ...

주어진 노드에서 하위 노드 순회

DOM 트리를 통해 탐색할 수 있으며 노드를 조작할 수도 있습니다.


    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();
        }
    }

XPATH 사용

XPATH를 사용하면 노드와 속성에 매우 쉽게 액세스할 수 있습니다.


    //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]");

XML 문서 저장

XML 문서를 저장할 수 있습니다.


   doc.save_file("new_data.xml");

추가 정보

pugixml에 대한 자세한 정보를 얻으려면 다음 링크를 확인할 수 있습니다.

라이센스

라이브러리는 MIT 라이선스에 따라 게시됩니다.


산업기술

  1. 스위치가 있는 회로
  2. 과학적 표기법을 사용한 산술
  3. Industry 4.0 솔루션 설계자와의 Q&A
  4. Renesas:산업용 애플리케이션을 위한 EtherCAT 지원 기능이 있는 RX72M MCU
  5. 인쇄 예제가 있는 C++ 표준 템플릿 라이브러리(STL)의 맵
  6. 프로그램 예제가 있는 C 라이브러리의 calloc() 함수
  7. C 라이브러리의 free() 함수:어떻게 사용합니까? 예제로 배우기
  8. 파이썬 - XML ​​처리
  9. CNC 가공으로 보석을 가공하는 방법은 무엇입니까?
  10. C++용 Linq 목록 처리 라이브러리