react-native-nitro-xlsx 0.1.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NitroXlsx.podspec +27 -27
- package/Package.swift +35 -10
- package/README.md +220 -58
- package/android/CMakeLists.txt +24 -27
- package/android/cpp-adapter.cpp +12 -0
- package/android/src/main/java/com/margelo/nitro/xlsx/NitroXlsxPackage.kt +9 -0
- package/cpp/HybridNitroXlsx.cpp +25 -179
- package/cpp/HybridNitroXlsx.hpp +2 -2
- package/cpp/HybridXlsxConditionalFormat.cpp +252 -0
- package/cpp/HybridXlsxConditionalFormat.hpp +62 -0
- package/cpp/HybridXlsxConditionalFormats.cpp +46 -0
- package/cpp/HybridXlsxConditionalFormats.hpp +28 -0
- package/cpp/HybridXlsxWorkbook.cpp +159 -196
- package/cpp/HybridXlsxWorkbook.hpp +7 -2
- package/cpp/HybridXlsxWorksheet.cpp +433 -62
- package/cpp/HybridXlsxWorksheet.hpp +73 -26
- package/cpp/XlsxCacheDir.cpp +76 -0
- package/cpp/XlsxCacheDir.hpp +27 -0
- package/cpp/XlsxError.hpp +68 -0
- package/cpp/XlsxJson.cpp +185 -0
- package/cpp/XlsxJson.hpp +36 -0
- package/ios/XlsxCacheDir.mm +60 -0
- package/nitrogen/generated/android/NitroXlsx+autolinking.cmake +2 -0
- package/nitrogen/generated/shared/c++/HybridNitroXlsxSpec.hpp +5 -3
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.hpp +95 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.hpp +6 -1
- package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.cpp +47 -19
- package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.hpp +52 -20
- package/package.json +3 -3
- package/scripts/run-cpp-tests.sh +14 -0
- package/src/__mocks__/react-native-nitro-modules.ts +1 -0
- package/src/__tests__/index.test.ts +76 -7
- package/src/index.ts +107 -18
- package/src/specs/NitroXlsx.nitro.ts +141 -44
- package/thirdparty/OpenXLSX/.clang-format +118 -0
- package/thirdparty/OpenXLSX/.clang-tidy +28 -0
- package/thirdparty/OpenXLSX/.gitignore +130 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_before_XMLNode_wrappers +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_and_stripping +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_char_support +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_support +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespaced_name_disabled +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-08-11-benchmarks_post-XLCellIterator-Rework +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-08-14-benchmarks_post-default-row-column-style-support +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-09-02-benchmarks +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-12-19-benchmarks +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-12-30-benchmarks-post-XLSharedStrings-by-ref +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-09-benchmarks-post-conditionalFormatsAndSheetProtection +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-10-benchmarks-post-XLCellValue-bugfix +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-31-benchmarks-post-XLComments-implementation +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-02-02-benchmarks-post-XLRowIterator-Rework +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-07-20-benchmarks-after-hiding-pugixml-internals +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-08-29-benchmarks-after-code-review-with-libzip +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/Benchmark.cpp +249 -0
- package/thirdparty/OpenXLSX/Benchmarks/CMakeLists.txt +19 -0
- package/thirdparty/OpenXLSX/CMakeLists.txt +466 -0
- package/thirdparty/OpenXLSX/Documentation/CMakeLists.txt +31 -0
- package/thirdparty/OpenXLSX/Documentation/Doxyfile.in +2471 -0
- package/thirdparty/OpenXLSX/Documentation/DoxygenLayout.xml +194 -0
- package/thirdparty/OpenXLSX/Documentation/customdoxygen.css +1355 -0
- package/thirdparty/OpenXLSX/Examples/CMakeLists.txt +103 -0
- package/thirdparty/OpenXLSX/Examples/Demo1.cpp +279 -0
- package/thirdparty/OpenXLSX/Examples/Demo10.cpp +545 -0
- package/thirdparty/OpenXLSX/Examples/Demo1A.cpp +137 -0
- package/thirdparty/OpenXLSX/Examples/Demo2.cpp +65 -0
- package/thirdparty/OpenXLSX/Examples/Demo3.cpp +89 -0
- package/thirdparty/OpenXLSX/Examples/Demo4.cpp +86 -0
- package/thirdparty/OpenXLSX/Examples/Demo5.cpp +77 -0
- package/thirdparty/OpenXLSX/Examples/Demo6.cpp +103 -0
- package/thirdparty/OpenXLSX/Examples/Demo7.cpp +79 -0
- package/thirdparty/OpenXLSX/Examples/Demo8.cpp +117 -0
- package/thirdparty/OpenXLSX/Examples/Demo9.cpp +363 -0
- package/thirdparty/OpenXLSX/Examples/cmake/FindLIBZIP.cmake +61 -0
- package/thirdparty/OpenXLSX/Examples/external/CustomZip/CustomZip.hpp +256 -0
- package/thirdparty/OpenXLSX/LICENSE.md +29 -0
- package/thirdparty/OpenXLSX/Makefile.GNU +530 -0
- package/thirdparty/OpenXLSX/Notes/TBDs.txt +16 -0
- package/thirdparty/OpenXLSX/Notes/confirmed-TBCs.txt +8 -0
- package/thirdparty/OpenXLSX/Notes/styles-missing-support.xml +12 -0
- package/thirdparty/OpenXLSX/Notes/todo-list.txt +108 -0
- package/thirdparty/OpenXLSX/OpenXLSX/CMakeLists.txt +631 -0
- package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSX.hpp +63 -0
- package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSXConfig.cmake +11 -0
- package/thirdparty/OpenXLSX/OpenXLSX/cmake/bundle_static_library.cmake +198 -0
- package/thirdparty/OpenXLSX/OpenXLSX/cmake/patch_pkg_config.cmake +69 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/IZipArchive.hpp +361 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX-Exports.hpp +12 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCell.hpp +367 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellIterator.hpp +252 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellRange.hpp +223 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellReference.hpp +317 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellValue.hpp +793 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColor.hpp +232 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColumn.hpp +159 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCommandQuery.hpp +228 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLComments.hpp +270 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLConstants.hpp +18 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLContentTypes.hpp +264 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDateTime.hpp +175 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDocument.hpp +505 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDrawing.hpp +452 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLException.hpp +161 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLFormula.hpp +375 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLIterator.hpp +40 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLMergeCells.hpp +216 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLProperties.hpp +348 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRelationships.hpp +348 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRow.hpp +721 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRowData.hpp +488 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSharedStrings.hpp +204 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSheet.hpp +1640 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLStyles.hpp +2390 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLTables.hpp +132 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLWorkbook.hpp +404 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlData.hpp +283 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlFile.hpp +194 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParser.hpp +282 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParserForwardDeclarations.hpp +85 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLZipArchive.hpp +232 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/LibZip.hpp +447 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/OpenXLSXFileSystemTools.hpp +207 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp +1375 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCell.cpp +340 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellIterator.cpp +427 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellRange.cpp +221 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellReference.cpp +408 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellValue.cpp +519 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColor.cpp +202 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColumn.cpp +141 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLComments.cpp +637 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLContentTypes.cpp +329 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDateTime.cpp +269 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDocument.cpp +1678 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDrawing.cpp +784 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLFormula.cpp +201 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLMergeCells.cpp +357 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLProperties.cpp +810 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRelationships.cpp +529 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRow.cpp +918 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRowData.cpp +508 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSharedStrings.cpp +220 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSheet.cpp +1970 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLStyles.cpp +3014 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLTables.cpp +125 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLWorkbook.cpp +784 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlData.cpp +247 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlFile.cpp +160 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlParser.cpp +261 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLZipArchive.cpp +266 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/utilities/XLUtilities.hpp +478 -0
- package/thirdparty/OpenXLSX/README.md +1279 -0
- package/thirdparty/OpenXLSX/Scripts/cmake-cleanup.sh +102 -0
- package/thirdparty/OpenXLSX/Scripts/compile.sh +23 -0
- package/thirdparty/OpenXLSX/Scripts/demos-cleanup.sh +25 -0
- package/thirdparty/OpenXLSX/Scripts/demos-run-all.sh +60 -0
- package/thirdparty/OpenXLSX/Scripts/guarded-xml-format.sh +47 -0
- package/thirdparty/OpenXLSX/Scripts/make-gnu.sh +11 -0
- package/thirdparty/OpenXLSX/Scripts/uninstall-manifest.sh +48 -0
- package/thirdparty/OpenXLSX/Scripts/xml-format-all.sh +19 -0
- package/thirdparty/OpenXLSX/Scripts/xml-format.sh +38 -0
- package/thirdparty/OpenXLSX/Tests/CMakeLists.txt +37 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch.hpp +17799 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_automake.hpp +68 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_sonarqube.hpp +182 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_tap.hpp +278 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_teamcity.hpp +212 -0
- package/thirdparty/OpenXLSX/Tests/main.cpp +55 -0
- package/thirdparty/OpenXLSX/Tests/testXLCell.cpp +176 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellRange.cpp +180 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellReference.cpp +160 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellValue.cpp +366 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellValueProxy.cpp +255 -0
- package/thirdparty/OpenXLSX/Tests/testXLColor.cpp +75 -0
- package/thirdparty/OpenXLSX/Tests/testXLDateTime.cpp +229 -0
- package/thirdparty/OpenXLSX/Tests/testXLDocument.cpp +197 -0
- package/thirdparty/OpenXLSX/Tests/testXLFormula.cpp +131 -0
- package/thirdparty/OpenXLSX/Tests/testXLRow.cpp +597 -0
- package/thirdparty/OpenXLSX/Tests/testXLSheet.cpp +77 -0
- package/thirdparty/OpenXLSX/Tests/ziptest-with-libs.cpp +88 -0
- package/thirdparty/OpenXLSX/Tests/ziptest.cpp +735 -0
- package/thirdparty/OpenXLSX/cmake/get-git-HEAD-ID.cmake +45 -0
- package/thirdparty/OpenXLSX/cmake/libopenxlsxCPackOptions.cmake.in +20 -0
- package/thirdparty/OpenXLSX/cmake/manage_dependency.cmake +813 -0
- package/thirdparty/OpenXLSX/cmake/recursive_library_type_test.cmake +52 -0
- package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-shared.hpp +42 -0
- package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-static.hpp +42 -0
- package/thirdparty/OpenXLSX/vcpkg.json +24 -0
- package/thirdparty/README.md +42 -0
- package/thirdparty/miniz/.clang-format +47 -0
- package/thirdparty/miniz/.travis.yml +2 -0
- package/thirdparty/miniz/CMakeLists.txt +333 -0
- package/thirdparty/miniz/CMakePresets.json +31 -0
- package/thirdparty/miniz/ChangeLog.md +272 -0
- package/thirdparty/miniz/Config.cmake.in +1 -0
- package/thirdparty/miniz/LICENSE +22 -0
- package/thirdparty/miniz/amalgamate.sh +57 -0
- package/thirdparty/miniz/examples/example1.c +105 -0
- package/thirdparty/miniz/examples/example2.c +164 -0
- package/thirdparty/miniz/examples/example3.c +269 -0
- package/thirdparty/miniz/examples/example4.c +102 -0
- package/thirdparty/miniz/examples/example5.c +327 -0
- package/thirdparty/miniz/examples/example6.c +189 -0
- package/thirdparty/miniz/meson.build +21 -0
- package/thirdparty/miniz/miniz.c +646 -0
- package/thirdparty/miniz/miniz.h +615 -0
- package/thirdparty/miniz/miniz.pc.in +13 -0
- package/thirdparty/miniz/miniz_common.h +89 -0
- package/thirdparty/miniz/miniz_export.h +20 -0
- package/thirdparty/miniz/miniz_tdef.c +1602 -0
- package/thirdparty/miniz/miniz_tdef.h +199 -0
- package/thirdparty/miniz/miniz_tinfl.c +778 -0
- package/thirdparty/miniz/miniz_tinfl.h +150 -0
- package/thirdparty/miniz/miniz_zip.c +4895 -0
- package/thirdparty/miniz/miniz_zip.h +454 -0
- package/thirdparty/miniz/readme.md +46 -0
- package/thirdparty/miniz/test.sh +36 -0
- package/thirdparty/miniz/tests/add_in_place_fuzzer.c +87 -0
- package/thirdparty/miniz/tests/catch_amalgamated.cpp +10795 -0
- package/thirdparty/miniz/tests/catch_amalgamated.hpp +13143 -0
- package/thirdparty/miniz/tests/checksum_fuzzer.c +26 -0
- package/thirdparty/miniz/tests/compress_fuzzer.c +91 -0
- package/thirdparty/miniz/tests/flush_fuzzer.c +88 -0
- package/thirdparty/miniz/tests/fuzz_main.c +55 -0
- package/thirdparty/miniz/tests/large_fuzzer.c +133 -0
- package/thirdparty/miniz/tests/main.cpp +185 -0
- package/thirdparty/miniz/tests/miniz_tdefl_fuzzer.cc +115 -0
- package/thirdparty/miniz/tests/miniz_tester.cpp +1881 -0
- package/thirdparty/miniz/tests/miniz_zip_validate_fuzzer.cc +71 -0
- package/thirdparty/miniz/tests/miniz_zip_writer_fuzzer.cc +96 -0
- package/thirdparty/miniz/tests/ossfuzz.sh +48 -0
- package/thirdparty/miniz/tests/small_fuzzer.c +126 -0
- package/thirdparty/miniz/tests/timer.cpp +152 -0
- package/thirdparty/miniz/tests/timer.h +40 -0
- package/thirdparty/miniz/tests/uncompress2_fuzzer.c +21 -0
- package/thirdparty/miniz/tests/uncompress_fuzzer.c +30 -0
- package/thirdparty/miniz/tests/zip.dict +9 -0
- package/thirdparty/miniz/tests/zip_fuzzer.c +63 -0
- package/thirdparty/pugixml/.codecov.yml +7 -0
- package/thirdparty/pugixml/.gitattributes +1 -0
- package/thirdparty/pugixml/CMakeLists.txt +330 -0
- package/thirdparty/pugixml/LICENSE.md +24 -0
- package/thirdparty/pugixml/Makefile +98 -0
- package/thirdparty/pugixml/README.md +81 -0
- package/thirdparty/pugixml/SECURITY.md +9 -0
- package/thirdparty/pugixml/appveyor.yml +50 -0
- package/thirdparty/pugixml/docs/config.adoc +7 -0
- package/thirdparty/pugixml/docs/images/dom_tree.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_link1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_link2.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch2.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch3.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch4.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2010_link1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2010_link2.png +0 -0
- package/thirdparty/pugixml/docs/manual.adoc +3326 -0
- package/thirdparty/pugixml/docs/manual.html +6395 -0
- package/thirdparty/pugixml/docs/quickstart.adoc +287 -0
- package/thirdparty/pugixml/docs/quickstart.html +1107 -0
- package/thirdparty/pugixml/docs/samples/character.xml +8 -0
- package/thirdparty/pugixml/docs/samples/custom_memory_management.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/include.cpp +64 -0
- package/thirdparty/pugixml/docs/samples/load_error_handling.cpp +33 -0
- package/thirdparty/pugixml/docs/samples/load_file.cpp +16 -0
- package/thirdparty/pugixml/docs/samples/load_memory.cpp +66 -0
- package/thirdparty/pugixml/docs/samples/load_options.cpp +30 -0
- package/thirdparty/pugixml/docs/samples/load_stream.cpp +97 -0
- package/thirdparty/pugixml/docs/samples/modify_add.cpp +29 -0
- package/thirdparty/pugixml/docs/samples/modify_base.cpp +43 -0
- package/thirdparty/pugixml/docs/samples/modify_remove.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/save_custom_writer.cpp +116 -0
- package/thirdparty/pugixml/docs/samples/save_declaration.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/save_file.cpp +17 -0
- package/thirdparty/pugixml/docs/samples/save_options.cpp +48 -0
- package/thirdparty/pugixml/docs/samples/save_stream.cpp +18 -0
- package/thirdparty/pugixml/docs/samples/save_subtree.cpp +26 -0
- package/thirdparty/pugixml/docs/samples/text.cpp +35 -0
- package/thirdparty/pugixml/docs/samples/transitions.xml +7 -0
- package/thirdparty/pugixml/docs/samples/traverse_base.cpp +51 -0
- package/thirdparty/pugixml/docs/samples/traverse_iter.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/traverse_predicate.cpp +48 -0
- package/thirdparty/pugixml/docs/samples/traverse_rangefor.cpp +32 -0
- package/thirdparty/pugixml/docs/samples/traverse_walker.cpp +35 -0
- package/thirdparty/pugixml/docs/samples/tree.xml +12 -0
- package/thirdparty/pugixml/docs/samples/weekly-shift_jis.xml +78 -0
- package/thirdparty/pugixml/docs/samples/weekly-utf-16.xml +0 -0
- package/thirdparty/pugixml/docs/samples/weekly-utf-8.xml +78 -0
- package/thirdparty/pugixml/docs/samples/xgconsole.xml +12 -0
- package/thirdparty/pugixml/docs/samples/xpath_error.cpp +43 -0
- package/thirdparty/pugixml/docs/samples/xpath_query.cpp +36 -0
- package/thirdparty/pugixml/docs/samples/xpath_select.cpp +28 -0
- package/thirdparty/pugixml/docs/samples/xpath_variables.cpp +38 -0
- package/thirdparty/pugixml/readme.txt +50 -0
- package/thirdparty/pugixml/scripts/archive.py +54 -0
- package/thirdparty/pugixml/scripts/cocoapods_push.sh +4 -0
- package/thirdparty/pugixml/scripts/natvis/pugixml.natvis +77 -0
- package/thirdparty/pugixml/scripts/natvis/pugixml_compact.natvis +506 -0
- package/thirdparty/pugixml/scripts/nuget/build/native/pugixml-propertiesui.xml +17 -0
- package/thirdparty/pugixml/scripts/nuget/build/native/pugixml.targets +28 -0
- package/thirdparty/pugixml/scripts/nuget/pugixml.nuspec +20 -0
- package/thirdparty/pugixml/scripts/nuget_build.ps1 +60 -0
- package/thirdparty/pugixml/scripts/premake4.lua +92 -0
- package/thirdparty/pugixml/scripts/pugixml-config.cmake.in +12 -0
- package/thirdparty/pugixml/scripts/pugixml.pc.in +11 -0
- package/thirdparty/pugixml/scripts/pugixml.podspec +14 -0
- package/thirdparty/pugixml/scripts/pugixml.xcodeproj/project.pbxproj +212 -0
- package/thirdparty/pugixml/scripts/pugixml_airplay.mkf +13 -0
- package/thirdparty/pugixml/scripts/pugixml_codeblocks.cbp +44 -0
- package/thirdparty/pugixml/scripts/pugixml_codelite.project +56 -0
- package/thirdparty/pugixml/scripts/pugixml_dll.rc +45 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2005.vcproj +343 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2005_static.vcproj +343 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2008.vcproj +339 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2008_static.vcproj +339 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2010.vcxproj +191 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2010_static.vcxproj +191 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2013.vcxproj +199 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2013_static.vcxproj +199 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2015.vcxproj +172 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2015_static.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2017.vcxproj +172 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2017_static.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2019.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2019_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2022.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2022_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2026.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2026_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/sbom.cdx.json +47 -0
- package/thirdparty/pugixml/src/pugiconfig.hpp +81 -0
- package/thirdparty/pugixml/src/pugixml.cpp +13776 -0
- package/thirdparty/pugixml/src/pugixml.hpp +1604 -0
- package/thirdparty/pugixml/tests/allocator.cpp +175 -0
- package/thirdparty/pugixml/tests/allocator.hpp +10 -0
- package/thirdparty/pugixml/tests/autotest-appveyor.ps1 +93 -0
- package/thirdparty/pugixml/tests/cmake-appveyor.ps1 +57 -0
- package/thirdparty/pugixml/tests/data/empty.xml +0 -0
- package/thirdparty/pugixml/tests/data/large.xml +1 -0
- package/thirdparty/pugixml/tests/data/latintest_latin1.xml +1 -0
- package/thirdparty/pugixml/tests/data/latintest_utf8.xml +1 -0
- package/thirdparty/pugixml/tests/data/multiline.xml +3 -0
- package/thirdparty/pugixml/tests/data/small.xml +1 -0
- package/thirdparty/pugixml/tests/data/truncation.xml +19 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8.xml +87 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_bom.xml +87 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_clean.xml +84 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_nodecl.xml +86 -0
- package/thirdparty/pugixml/tests/data//321/202/320/265/321/201/321/202.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/basic.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/doctype.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/refs.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/types.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/utf16.xml +0 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/utf32.xml +0 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/basic.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/functions.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/math.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/path.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/predicate.xpath +1 -0
- package/thirdparty/pugixml/tests/fuzz_parse.cpp +14 -0
- package/thirdparty/pugixml/tests/fuzz_parse.dict +72 -0
- package/thirdparty/pugixml/tests/fuzz_setup.sh +11 -0
- package/thirdparty/pugixml/tests/fuzz_xpath.cpp +46 -0
- package/thirdparty/pugixml/tests/fuzz_xpath.dict +72 -0
- package/thirdparty/pugixml/tests/helpers.hpp +114 -0
- package/thirdparty/pugixml/tests/main.cpp +218 -0
- package/thirdparty/pugixml/tests/test.cpp +220 -0
- package/thirdparty/pugixml/tests/test.hpp +175 -0
- package/thirdparty/pugixml/tests/test_compact.cpp +150 -0
- package/thirdparty/pugixml/tests/test_deprecated.cpp +25 -0
- package/thirdparty/pugixml/tests/test_document.cpp +1910 -0
- package/thirdparty/pugixml/tests/test_dom_modify.cpp +2122 -0
- package/thirdparty/pugixml/tests/test_dom_text.cpp +601 -0
- package/thirdparty/pugixml/tests/test_dom_traverse.cpp +1481 -0
- package/thirdparty/pugixml/tests/test_header_guard.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iosfwd_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iosfwd_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iostream_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iostream_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_only_1.cpp +21 -0
- package/thirdparty/pugixml/tests/test_header_only_2.cpp +21 -0
- package/thirdparty/pugixml/tests/test_header_string_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_string_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_string_iostream.cpp +5 -0
- package/thirdparty/pugixml/tests/test_memory.cpp +303 -0
- package/thirdparty/pugixml/tests/test_parse.cpp +1463 -0
- package/thirdparty/pugixml/tests/test_parse_doctype.cpp +366 -0
- package/thirdparty/pugixml/tests/test_unicode.cpp +152 -0
- package/thirdparty/pugixml/tests/test_version.cpp +5 -0
- package/thirdparty/pugixml/tests/test_write.cpp +757 -0
- package/thirdparty/pugixml/tests/test_xpath.cpp +833 -0
- package/thirdparty/pugixml/tests/test_xpath_api.cpp +646 -0
- package/thirdparty/pugixml/tests/test_xpath_functions.cpp +844 -0
- package/thirdparty/pugixml/tests/test_xpath_operators.cpp +566 -0
- package/thirdparty/pugixml/tests/test_xpath_parse.cpp +428 -0
- package/thirdparty/pugixml/tests/test_xpath_paths.cpp +787 -0
- package/thirdparty/pugixml/tests/test_xpath_paths_abbrev_w3c.cpp +219 -0
- package/thirdparty/pugixml/tests/test_xpath_paths_w3c.cpp +312 -0
- package/thirdparty/pugixml/tests/test_xpath_variables.cpp +683 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_1.cpp +411 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_2.cpp +417 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_3.cpp +321 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_4.cpp +300 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_5.cpp +295 -0
- package/thirdparty/pugixml/tests/writer_string.cpp +79 -0
- package/thirdparty/pugixml/tests/writer_string.hpp +27 -0
- package/ios/dummy.swift +0 -2
- package/scripts/prepare-openxlsx.js +0 -109
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
int main()
|
|
6
|
+
{
|
|
7
|
+
// tag::code[]
|
|
8
|
+
// get a test document
|
|
9
|
+
pugi::xml_document doc;
|
|
10
|
+
doc.load_string("<foo bar='baz'><call>hey</call></foo>");
|
|
11
|
+
|
|
12
|
+
// print document to standard output (prints <?xml version="1.0"?><foo bar="baz"><call>hey</call></foo>)
|
|
13
|
+
doc.save(std::cout, "", pugi::format_raw);
|
|
14
|
+
std::cout << std::endl;
|
|
15
|
+
|
|
16
|
+
// print document to standard output as a regular node (prints <foo bar="baz"><call>hey</call></foo>)
|
|
17
|
+
doc.print(std::cout, "", pugi::format_raw);
|
|
18
|
+
std::cout << std::endl;
|
|
19
|
+
|
|
20
|
+
// print a subtree to standard output (prints <call>hey</call>)
|
|
21
|
+
doc.child("foo").child("call").print(std::cout, "", pugi::format_raw);
|
|
22
|
+
std::cout << std::endl;
|
|
23
|
+
// end::code[]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// vim:et
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
int main()
|
|
6
|
+
{
|
|
7
|
+
pugi::xml_document doc;
|
|
8
|
+
|
|
9
|
+
// get a test document
|
|
10
|
+
doc.load_string("<project><name>test</name><version>1.1</version><public>yes</public></project>");
|
|
11
|
+
|
|
12
|
+
pugi::xml_node project = doc.child("project");
|
|
13
|
+
|
|
14
|
+
// tag::access[]
|
|
15
|
+
std::cout << "Project name: " << project.child("name").text().get() << std::endl;
|
|
16
|
+
std::cout << "Project version: " << project.child("version").text().as_double() << std::endl;
|
|
17
|
+
std::cout << "Project visibility: " << (project.child("public").text().as_bool(/* def= */ true) ? "public" : "private") << std::endl;
|
|
18
|
+
std::cout << "Project description: " << project.child("description").text().get() << std::endl;
|
|
19
|
+
// end::access[]
|
|
20
|
+
|
|
21
|
+
std::cout << std::endl;
|
|
22
|
+
|
|
23
|
+
// tag::modify[]
|
|
24
|
+
// change project version
|
|
25
|
+
project.child("version").text() = 1.2;
|
|
26
|
+
|
|
27
|
+
// add description element and set the contents
|
|
28
|
+
// note that we do not have to explicitly add the node_pcdata child
|
|
29
|
+
project.append_child("description").text().set("a test project");
|
|
30
|
+
// end::modify[]
|
|
31
|
+
|
|
32
|
+
doc.save(std::cout);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// vim:et
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <string.h>
|
|
4
|
+
#include <iostream>
|
|
5
|
+
|
|
6
|
+
int main()
|
|
7
|
+
{
|
|
8
|
+
pugi::xml_document doc;
|
|
9
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
10
|
+
|
|
11
|
+
pugi::xml_node tools = doc.child("Profile").child("Tools");
|
|
12
|
+
|
|
13
|
+
// tag::basic[]
|
|
14
|
+
for (pugi::xml_node tool = tools.first_child(); tool; tool = tool.next_sibling())
|
|
15
|
+
{
|
|
16
|
+
std::cout << "Tool:";
|
|
17
|
+
|
|
18
|
+
for (pugi::xml_attribute attr = tool.first_attribute(); attr; attr = attr.next_attribute())
|
|
19
|
+
{
|
|
20
|
+
std::cout << " " << attr.name() << "=" << attr.value();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
std::cout << std::endl;
|
|
24
|
+
}
|
|
25
|
+
// end::basic[]
|
|
26
|
+
|
|
27
|
+
std::cout << std::endl;
|
|
28
|
+
|
|
29
|
+
// tag::data[]
|
|
30
|
+
for (pugi::xml_node tool = tools.child("Tool"); tool; tool = tool.next_sibling("Tool"))
|
|
31
|
+
{
|
|
32
|
+
std::cout << "Tool " << tool.attribute("Filename").value();
|
|
33
|
+
std::cout << ": AllowRemote " << tool.attribute("AllowRemote").as_bool();
|
|
34
|
+
std::cout << ", Timeout " << tool.attribute("Timeout").as_int();
|
|
35
|
+
std::cout << ", Description '" << tool.child_value("Description") << "'\n";
|
|
36
|
+
}
|
|
37
|
+
// end::data[]
|
|
38
|
+
|
|
39
|
+
std::cout << std::endl;
|
|
40
|
+
|
|
41
|
+
// tag::contents[]
|
|
42
|
+
std::cout << "Tool for *.dae generation: " << tools.find_child_by_attribute("Tool", "OutputFileMasks", "*.dae").attribute("Filename").value() << "\n";
|
|
43
|
+
|
|
44
|
+
for (pugi::xml_node tool = tools.child("Tool"); tool; tool = tool.next_sibling("Tool"))
|
|
45
|
+
{
|
|
46
|
+
std::cout << "Tool " << tool.attribute("Filename").value() << "\n";
|
|
47
|
+
}
|
|
48
|
+
// end::contents[]
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// vim:et
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
int main()
|
|
6
|
+
{
|
|
7
|
+
pugi::xml_document doc;
|
|
8
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
9
|
+
|
|
10
|
+
pugi::xml_node tools = doc.child("Profile").child("Tools");
|
|
11
|
+
|
|
12
|
+
// tag::code[]
|
|
13
|
+
for (pugi::xml_node_iterator it = tools.begin(); it != tools.end(); ++it)
|
|
14
|
+
{
|
|
15
|
+
std::cout << "Tool:";
|
|
16
|
+
|
|
17
|
+
for (pugi::xml_attribute_iterator ait = it->attributes_begin(); ait != it->attributes_end(); ++ait)
|
|
18
|
+
{
|
|
19
|
+
std::cout << " " << ait->name() << "=" << ait->value();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
std::cout << std::endl;
|
|
23
|
+
}
|
|
24
|
+
// end::code[]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// vim:et
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <string.h>
|
|
4
|
+
#include <iostream>
|
|
5
|
+
|
|
6
|
+
// tag::decl[]
|
|
7
|
+
bool small_timeout(pugi::xml_node node)
|
|
8
|
+
{
|
|
9
|
+
return node.attribute("Timeout").as_int() < 20;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
struct allow_remote_predicate
|
|
13
|
+
{
|
|
14
|
+
bool operator()(pugi::xml_attribute attr) const
|
|
15
|
+
{
|
|
16
|
+
return strcmp(attr.name(), "AllowRemote") == 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
bool operator()(pugi::xml_node node) const
|
|
20
|
+
{
|
|
21
|
+
return node.attribute("AllowRemote").as_bool();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
// end::decl[]
|
|
25
|
+
|
|
26
|
+
int main()
|
|
27
|
+
{
|
|
28
|
+
pugi::xml_document doc;
|
|
29
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
30
|
+
|
|
31
|
+
pugi::xml_node tools = doc.child("Profile").child("Tools");
|
|
32
|
+
|
|
33
|
+
// tag::find[]
|
|
34
|
+
// Find child via predicate (looks for direct children only)
|
|
35
|
+
std::cout << tools.find_child(allow_remote_predicate()).attribute("Filename").value() << std::endl;
|
|
36
|
+
|
|
37
|
+
// Find node via predicate (looks for all descendants in depth-first order)
|
|
38
|
+
std::cout << doc.find_node(allow_remote_predicate()).attribute("Filename").value() << std::endl;
|
|
39
|
+
|
|
40
|
+
// Find attribute via predicate
|
|
41
|
+
std::cout << tools.last_child().find_attribute(allow_remote_predicate()).value() << std::endl;
|
|
42
|
+
|
|
43
|
+
// We can use simple functions instead of function objects
|
|
44
|
+
std::cout << tools.find_child(small_timeout).attribute("Filename").value() << std::endl;
|
|
45
|
+
// end::find[]
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// vim:et
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
int main()
|
|
6
|
+
{
|
|
7
|
+
pugi::xml_document doc;
|
|
8
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
9
|
+
|
|
10
|
+
pugi::xml_node tools = doc.child("Profile").child("Tools");
|
|
11
|
+
|
|
12
|
+
// tag::code[]
|
|
13
|
+
for (pugi::xml_node tool: tools.children("Tool"))
|
|
14
|
+
{
|
|
15
|
+
std::cout << "Tool:";
|
|
16
|
+
|
|
17
|
+
for (pugi::xml_attribute attr: tool.attributes())
|
|
18
|
+
{
|
|
19
|
+
std::cout << " " << attr.name() << "=" << attr.value();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for (pugi::xml_node child: tool.children())
|
|
23
|
+
{
|
|
24
|
+
std::cout << ", child " << child.name();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
std::cout << std::endl;
|
|
28
|
+
}
|
|
29
|
+
// end::code[]
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// vim:et
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
const char* node_types[] =
|
|
6
|
+
{
|
|
7
|
+
"null", "document", "element", "pcdata", "cdata", "comment", "pi", "declaration"
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// tag::impl[]
|
|
11
|
+
struct simple_walker: pugi::xml_tree_walker
|
|
12
|
+
{
|
|
13
|
+
virtual bool for_each(pugi::xml_node& node)
|
|
14
|
+
{
|
|
15
|
+
for (int i = 0; i < depth(); ++i) std::cout << " "; // indentation
|
|
16
|
+
|
|
17
|
+
std::cout << node_types[node.type()] << ": name='" << node.name() << "', value='" << node.value() << "'\n";
|
|
18
|
+
|
|
19
|
+
return true; // continue traversal
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
// end::impl[]
|
|
23
|
+
|
|
24
|
+
int main()
|
|
25
|
+
{
|
|
26
|
+
pugi::xml_document doc;
|
|
27
|
+
if (!doc.load_file("tree.xml")) return -1;
|
|
28
|
+
|
|
29
|
+
// tag::traverse[]
|
|
30
|
+
simple_walker walker;
|
|
31
|
+
doc.traverse(walker);
|
|
32
|
+
// end::traverse[]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// vim:et
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<mesh name="mesh_root">
|
|
3
|
+
<!-- here is a mesh node -->
|
|
4
|
+
some text
|
|
5
|
+
<![CDATA[someothertext]]>
|
|
6
|
+
some more text
|
|
7
|
+
<node attr1="value1" attr2="value2" />
|
|
8
|
+
<node attr1="value2">
|
|
9
|
+
<innernode/>
|
|
10
|
+
</node>
|
|
11
|
+
</mesh>
|
|
12
|
+
<?include somedata?>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="Shift_JIS"?>
|
|
2
|
+
<!DOCTYPE �T�� SYSTEM "weekly-shift_jis.dtd">
|
|
3
|
+
<!-- �T��T���v�� -->
|
|
4
|
+
<�T��>
|
|
5
|
+
<�N���T>
|
|
6
|
+
<�N�x>1997</�N�x>
|
|
7
|
+
<���x>1</���x>
|
|
8
|
+
<�T>1</�T>
|
|
9
|
+
</�N���T>
|
|
10
|
+
|
|
11
|
+
<����>
|
|
12
|
+
<��>�R�c</��>
|
|
13
|
+
<��>���Y</��>
|
|
14
|
+
</����>
|
|
15
|
+
|
|
16
|
+
<�Ɩ����X�g>
|
|
17
|
+
<�Ɩ���>
|
|
18
|
+
<�Ɩ���>XML�G�f�B�^�[�̍쐬</�Ɩ���>
|
|
19
|
+
<�Ɩ��R�[�h>X3355-23</�Ɩ��R�[�h>
|
|
20
|
+
<�H���Ǘ�>
|
|
21
|
+
<����H��>1600</����H��>
|
|
22
|
+
<���эH��>320</���эH��>
|
|
23
|
+
<��������H��>160</��������H��>
|
|
24
|
+
<�������эH��>24</�������эH��>
|
|
25
|
+
</�H���Ǘ�>
|
|
26
|
+
<�\�荀�ڃ��X�g>
|
|
27
|
+
<�\�荀��>
|
|
28
|
+
<P>XML�G�f�B�^�[�̊�{�d�l�̍쐬</P>
|
|
29
|
+
</�\�荀��>
|
|
30
|
+
</�\�荀�ڃ��X�g>
|
|
31
|
+
<���{�������X�g>
|
|
32
|
+
<���{����>
|
|
33
|
+
<P>XML�G�f�B�^�[�̊�{�d�l�̍쐬</P>
|
|
34
|
+
</���{����>
|
|
35
|
+
<���{����>
|
|
36
|
+
<P>�������А��i�̋@�\����</P>
|
|
37
|
+
</���{����>
|
|
38
|
+
</���{�������X�g>
|
|
39
|
+
<�㒷�ւ̗v���������X�g>
|
|
40
|
+
<�㒷�ւ̗v������>
|
|
41
|
+
<P>���ɂȂ�</P>
|
|
42
|
+
</�㒷�ւ̗v������>
|
|
43
|
+
</�㒷�ւ̗v���������X�g>
|
|
44
|
+
<���_��>
|
|
45
|
+
<P>XML�Ƃ͉����킩��Ȃ��B</P>
|
|
46
|
+
</���_��>
|
|
47
|
+
</�Ɩ���>
|
|
48
|
+
|
|
49
|
+
<�Ɩ���>
|
|
50
|
+
<�Ɩ���>�����G���W���̊J��</�Ɩ���>
|
|
51
|
+
<�Ɩ��R�[�h>S8821-76</�Ɩ��R�[�h>
|
|
52
|
+
<�H���Ǘ�>
|
|
53
|
+
<����H��>120</����H��>
|
|
54
|
+
<���эH��>6</���эH��>
|
|
55
|
+
<��������H��>32</��������H��>
|
|
56
|
+
<�������эH��>2</�������эH��>
|
|
57
|
+
</�H���Ǘ�>
|
|
58
|
+
<�\�荀�ڃ��X�g>
|
|
59
|
+
<�\�荀��>
|
|
60
|
+
<P><A href="http://www.goo.ne.jp">goo</A>�̋@�\�ׂĂ݂�</P>
|
|
61
|
+
</�\�荀��>
|
|
62
|
+
</�\�荀�ڃ��X�g>
|
|
63
|
+
<���{�������X�g>
|
|
64
|
+
<���{����>
|
|
65
|
+
<P>�X�ɁA�ǂ����������G���W�������邩��������</P>
|
|
66
|
+
</���{����>
|
|
67
|
+
</���{�������X�g>
|
|
68
|
+
<�㒷�ւ̗v���������X�g>
|
|
69
|
+
<�㒷�ւ̗v������>
|
|
70
|
+
<P>�J��������̂͂߂�ǂ��Ȃ̂ŁAYahoo!�����ĉ������B</P>
|
|
71
|
+
</�㒷�ւ̗v������>
|
|
72
|
+
</�㒷�ւ̗v���������X�g>
|
|
73
|
+
<���_��>
|
|
74
|
+
<P>�����G���W���ŎԂ𑖂点�邱�Ƃ��ł��Ȃ��B�i�v�����j</P>
|
|
75
|
+
</���_��>
|
|
76
|
+
</�Ɩ���>
|
|
77
|
+
</�Ɩ����X�g>
|
|
78
|
+
</�T��>
|
|
Binary file
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!DOCTYPE 週報 SYSTEM "weekly-utf-8.dtd">
|
|
3
|
+
<!-- 週報サンプル -->
|
|
4
|
+
<週報>
|
|
5
|
+
<年月週>
|
|
6
|
+
<年度>1997</年度>
|
|
7
|
+
<月度>1</月度>
|
|
8
|
+
<週>1</週>
|
|
9
|
+
</年月週>
|
|
10
|
+
|
|
11
|
+
<氏名>
|
|
12
|
+
<氏>山田</氏>
|
|
13
|
+
<名>太郎</名>
|
|
14
|
+
</氏名>
|
|
15
|
+
|
|
16
|
+
<業務報告リスト>
|
|
17
|
+
<業務報告>
|
|
18
|
+
<業務名>XMLエディターの作成</業務名>
|
|
19
|
+
<業務コード>X3355-23</業務コード>
|
|
20
|
+
<工数管理>
|
|
21
|
+
<見積もり工数>1600</見積もり工数>
|
|
22
|
+
<実績工数>320</実績工数>
|
|
23
|
+
<当月見積もり工数>160</当月見積もり工数>
|
|
24
|
+
<当月実績工数>24</当月実績工数>
|
|
25
|
+
</工数管理>
|
|
26
|
+
<予定項目リスト>
|
|
27
|
+
<予定項目>
|
|
28
|
+
<P>XMLエディターの基本仕様の作成</P>
|
|
29
|
+
</予定項目>
|
|
30
|
+
</予定項目リスト>
|
|
31
|
+
<実施事項リスト>
|
|
32
|
+
<実施事項>
|
|
33
|
+
<P>XMLエディターの基本仕様の作成</P>
|
|
34
|
+
</実施事項>
|
|
35
|
+
<実施事項>
|
|
36
|
+
<P>競合他社製品の機能調査</P>
|
|
37
|
+
</実施事項>
|
|
38
|
+
</実施事項リスト>
|
|
39
|
+
<上長への要請事項リスト>
|
|
40
|
+
<上長への要請事項>
|
|
41
|
+
<P>特になし</P>
|
|
42
|
+
</上長への要請事項>
|
|
43
|
+
</上長への要請事項リスト>
|
|
44
|
+
<問題点対策>
|
|
45
|
+
<P>XMLとは何かわからない。</P>
|
|
46
|
+
</問題点対策>
|
|
47
|
+
</業務報告>
|
|
48
|
+
|
|
49
|
+
<業務報告>
|
|
50
|
+
<業務名>検索エンジンの開発</業務名>
|
|
51
|
+
<業務コード>S8821-76</業務コード>
|
|
52
|
+
<工数管理>
|
|
53
|
+
<見積もり工数>120</見積もり工数>
|
|
54
|
+
<実績工数>6</実績工数>
|
|
55
|
+
<当月見積もり工数>32</当月見積もり工数>
|
|
56
|
+
<当月実績工数>2</当月実績工数>
|
|
57
|
+
</工数管理>
|
|
58
|
+
<予定項目リスト>
|
|
59
|
+
<予定項目>
|
|
60
|
+
<P><A href="http://www.goo.ne.jp">goo</A>の機能を調べてみる</P>
|
|
61
|
+
</予定項目>
|
|
62
|
+
</予定項目リスト>
|
|
63
|
+
<実施事項リスト>
|
|
64
|
+
<実施事項>
|
|
65
|
+
<P>更に、どういう検索エンジンがあるか調査する</P>
|
|
66
|
+
</実施事項>
|
|
67
|
+
</実施事項リスト>
|
|
68
|
+
<上長への要請事項リスト>
|
|
69
|
+
<上長への要請事項>
|
|
70
|
+
<P>開発をするのはめんどうなので、Yahoo!を買収して下さい。</P>
|
|
71
|
+
</上長への要請事項>
|
|
72
|
+
</上長への要請事項リスト>
|
|
73
|
+
<問題点対策>
|
|
74
|
+
<P>検索エンジンで車を走らせることができない。(要調査)</P>
|
|
75
|
+
</問題点対策>
|
|
76
|
+
</業務報告>
|
|
77
|
+
</業務報告リスト>
|
|
78
|
+
</週報>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
2
|
+
<Profile FormatVersion="1">
|
|
3
|
+
<Tools>
|
|
4
|
+
<Tool Filename="jam" AllowIntercept="true">
|
|
5
|
+
<Description>Jamplus build system</Description>
|
|
6
|
+
</Tool>
|
|
7
|
+
<Tool Filename="mayabatch.exe" AllowRemote="true" OutputFileMasks="*.dae" DeriveCaptionFrom="lastparam" Timeout="40" />
|
|
8
|
+
<Tool Filename="meshbuilder_*.exe" AllowRemote="false" OutputFileMasks="*.mesh" DeriveCaptionFrom="lastparam" Timeout="10" />
|
|
9
|
+
<Tool Filename="texbuilder_*.exe" AllowRemote="true" OutputFileMasks="*.tex" DeriveCaptionFrom="lastparam" />
|
|
10
|
+
<Tool Filename="shaderbuilder_*.exe" AllowRemote="true" DeriveCaptionFrom="lastparam" />
|
|
11
|
+
</Tools>
|
|
12
|
+
</Profile>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
int main()
|
|
6
|
+
{
|
|
7
|
+
pugi::xml_document doc;
|
|
8
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
9
|
+
|
|
10
|
+
// tag::code[]
|
|
11
|
+
// Exception is thrown for incorrect query syntax
|
|
12
|
+
try
|
|
13
|
+
{
|
|
14
|
+
doc.select_nodes("//nodes[#true()]");
|
|
15
|
+
}
|
|
16
|
+
catch (const pugi::xpath_exception& e)
|
|
17
|
+
{
|
|
18
|
+
std::cout << "Select failed: " << e.what() << std::endl;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Exception is thrown for incorrect query semantics
|
|
22
|
+
try
|
|
23
|
+
{
|
|
24
|
+
doc.select_nodes("(123)/next");
|
|
25
|
+
}
|
|
26
|
+
catch (const pugi::xpath_exception& e)
|
|
27
|
+
{
|
|
28
|
+
std::cout << "Select failed: " << e.what() << std::endl;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Exception is thrown for query with incorrect return type
|
|
32
|
+
try
|
|
33
|
+
{
|
|
34
|
+
doc.select_nodes("123");
|
|
35
|
+
}
|
|
36
|
+
catch (const pugi::xpath_exception& e)
|
|
37
|
+
{
|
|
38
|
+
std::cout << "Select failed: " << e.what() << std::endl;
|
|
39
|
+
}
|
|
40
|
+
// end::code[]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// vim:et
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
#include <string>
|
|
5
|
+
|
|
6
|
+
int main()
|
|
7
|
+
{
|
|
8
|
+
pugi::xml_document doc;
|
|
9
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
10
|
+
|
|
11
|
+
// tag::code[]
|
|
12
|
+
// Select nodes via compiled query
|
|
13
|
+
pugi::xpath_query query_remote_tools("/Profile/Tools/Tool[@AllowRemote='true']");
|
|
14
|
+
|
|
15
|
+
pugi::xpath_node_set tools = query_remote_tools.evaluate_node_set(doc);
|
|
16
|
+
std::cout << "Remote tool: ";
|
|
17
|
+
tools[2].node().print(std::cout);
|
|
18
|
+
|
|
19
|
+
// Evaluate numbers via compiled query
|
|
20
|
+
pugi::xpath_query query_timeouts("sum(//Tool/@Timeout)");
|
|
21
|
+
std::cout << query_timeouts.evaluate_number(doc) << std::endl;
|
|
22
|
+
|
|
23
|
+
// Evaluate strings via compiled query for different context nodes
|
|
24
|
+
pugi::xpath_query query_name_valid("string-length(substring-before(@Filename, '_')) > 0 and @OutputFileMasks");
|
|
25
|
+
pugi::xpath_query query_name("concat(substring-before(@Filename, '_'), ' produces ', @OutputFileMasks)");
|
|
26
|
+
|
|
27
|
+
for (pugi::xml_node tool = doc.first_element_by_path("Profile/Tools/Tool"); tool; tool = tool.next_sibling())
|
|
28
|
+
{
|
|
29
|
+
std::string s = query_name.evaluate_string(tool);
|
|
30
|
+
|
|
31
|
+
if (query_name_valid.evaluate_boolean(tool)) std::cout << s << std::endl;
|
|
32
|
+
}
|
|
33
|
+
// end::code[]
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// vim:et
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
|
|
5
|
+
int main()
|
|
6
|
+
{
|
|
7
|
+
pugi::xml_document doc;
|
|
8
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
9
|
+
|
|
10
|
+
// tag::code[]
|
|
11
|
+
pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool[@AllowRemote='true' and @DeriveCaptionFrom='lastparam']");
|
|
12
|
+
|
|
13
|
+
std::cout << "Tools:\n";
|
|
14
|
+
|
|
15
|
+
for (pugi::xpath_node_set::const_iterator it = tools.begin(); it != tools.end(); ++it)
|
|
16
|
+
{
|
|
17
|
+
pugi::xpath_node node = *it;
|
|
18
|
+
std::cout << node.node().attribute("Filename").value() << "\n";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
pugi::xpath_node build_tool = doc.select_node("//Tool[contains(Description, 'build system')]");
|
|
22
|
+
|
|
23
|
+
if (build_tool)
|
|
24
|
+
std::cout << "Build tool: " << build_tool.node().attribute("Filename").value() << "\n";
|
|
25
|
+
// end::code[]
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// vim:et
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#include "pugixml.hpp"
|
|
2
|
+
|
|
3
|
+
#include <iostream>
|
|
4
|
+
#include <string>
|
|
5
|
+
|
|
6
|
+
int main()
|
|
7
|
+
{
|
|
8
|
+
pugi::xml_document doc;
|
|
9
|
+
if (!doc.load_file("xgconsole.xml")) return -1;
|
|
10
|
+
|
|
11
|
+
// tag::code[]
|
|
12
|
+
// Select nodes via compiled query
|
|
13
|
+
pugi::xpath_variable_set vars;
|
|
14
|
+
vars.add("remote", pugi::xpath_type_boolean);
|
|
15
|
+
|
|
16
|
+
pugi::xpath_query query_remote_tools("/Profile/Tools/Tool[@AllowRemote = string($remote)]", &vars);
|
|
17
|
+
|
|
18
|
+
vars.set("remote", true);
|
|
19
|
+
pugi::xpath_node_set tools_remote = query_remote_tools.evaluate_node_set(doc);
|
|
20
|
+
|
|
21
|
+
vars.set("remote", false);
|
|
22
|
+
pugi::xpath_node_set tools_local = query_remote_tools.evaluate_node_set(doc);
|
|
23
|
+
|
|
24
|
+
std::cout << "Remote tool: ";
|
|
25
|
+
tools_remote[2].node().print(std::cout);
|
|
26
|
+
|
|
27
|
+
std::cout << "Local tool: ";
|
|
28
|
+
tools_local[0].node().print(std::cout);
|
|
29
|
+
|
|
30
|
+
// You can pass the context directly to select_nodes/select_node
|
|
31
|
+
pugi::xpath_node_set tools_local_imm = doc.select_nodes("/Profile/Tools/Tool[@AllowRemote = string($remote)]", &vars);
|
|
32
|
+
|
|
33
|
+
std::cout << "Local tool imm: ";
|
|
34
|
+
tools_local_imm[0].node().print(std::cout);
|
|
35
|
+
// end::code[]
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// vim:et
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
pugixml 1.16 - an XML processing library
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2006-2026, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
|
4
|
+
Report bugs and download new versions at https://pugixml.org/
|
|
5
|
+
|
|
6
|
+
This is the distribution of pugixml, which is a C++ XML processing library,
|
|
7
|
+
which consists of a DOM-like interface with rich traversal/modification
|
|
8
|
+
capabilities, an extremely fast XML parser which constructs the DOM tree from
|
|
9
|
+
an XML file/buffer, and an XPath 1.0 implementation for complex data-driven
|
|
10
|
+
tree queries. Full Unicode support is also available, with Unicode interface
|
|
11
|
+
variants and conversions between different Unicode encodings (which happen
|
|
12
|
+
automatically during parsing/saving).
|
|
13
|
+
|
|
14
|
+
The distribution contains the following folders:
|
|
15
|
+
|
|
16
|
+
docs/ - documentation
|
|
17
|
+
docs/samples - pugixml usage examples
|
|
18
|
+
docs/quickstart.html - quick start guide
|
|
19
|
+
docs/manual.html - complete manual
|
|
20
|
+
|
|
21
|
+
scripts/ - project files for IDE/build systems
|
|
22
|
+
|
|
23
|
+
src/ - header and source files
|
|
24
|
+
|
|
25
|
+
readme.txt - this file.
|
|
26
|
+
|
|
27
|
+
This library is distributed under the MIT License:
|
|
28
|
+
|
|
29
|
+
Copyright (c) 2006-2026 Arseny Kapoulkine
|
|
30
|
+
|
|
31
|
+
Permission is hereby granted, free of charge, to any person
|
|
32
|
+
obtaining a copy of this software and associated documentation
|
|
33
|
+
files (the "Software"), to deal in the Software without
|
|
34
|
+
restriction, including without limitation the rights to use,
|
|
35
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
36
|
+
copies of the Software, and to permit persons to whom the
|
|
37
|
+
Software is furnished to do so, subject to the following
|
|
38
|
+
conditions:
|
|
39
|
+
|
|
40
|
+
The above copyright notice and this permission notice shall be
|
|
41
|
+
included in all copies or substantial portions of the Software.
|
|
42
|
+
|
|
43
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
44
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
45
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
46
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
47
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
48
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
49
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
50
|
+
OTHER DEALINGS IN THE SOFTWARE.
|