This project provides both a Command-Line Interface (CLI) application and a Graphical User Interface (GUI) application for converting and validating XML files, generating JSON output, and offering various XML processing functionalities.
- Validate XML files and detect parsing or formatting errors.
- Convert XML to JSON for easier data handling and storage.
- Compress and decompress XML files.
- Pretty-print XML files for better readability.
- Minify XML files to reduce storage space.
- Simple GUI to load, format, and convert XML files.
- CLI flags for quick batch processing of XML files.
- Analyze social media XML files and visualize the relationships between users and posts using graph analysis.
- Graphviz must be installed for generating and drawing the graphs.
- Download and use the prebuilt Qt application from the GitHub Releases instead of building from source for a quicker setup.
- Building from source requires the following:
- CMake 3.19 or later.
- Qt6.
- A C++17-compatible compiler.
- Ninja (optional but recommended for faster builds).
- Clone this repository locally.
- Ensure CMake and Qt6 are installed and available in your PATH.
- From the project root, configure and build:
- Create a build folder:
mkdir build cd build
- Generate build files:
cmake -G <your preffered building system> ..
- Build all targets (using Ninja as an example):
ninja
- Create a build folder:
- Run the CLI app from the build directory:
- Windows:
build\CLI\cli_app.exe <command> -option <optionValue>
- Other systems:
./CLI/cli_app <command> -option <optionValue>
- Windows:
- Run the GUI app:
- Prebuilt Qt application:
- Download the latest release
- Run the executable file (bin/gui_app.exe).
- Building from source:
- Run the GUI app from the build directory:
./GUI/gui_app
- Run the GUI app from the build directory:
- Prebuilt Qt application:
- Enjoy the XML Manipulation software!
Use the CLI for automated or script-based workflows:
cli_app <command> --option <optionValue>
<command>
: The operation to perform (validate, convert, etc.).-option <optionValue>
: The option to pass to the command (e.g., file path, output format).
Use the GUI to explore XML files, format them, and convert to JSON interactively as well as analyze the social media XML files using the graph analysis and visualization feature.
Name | GitHub |
---|---|
AbdElRahman Soliman | @ASolimanA |
Zeyad Anwar | @Zeyad-Anwar |
Kareem Mostafa | @KareemMostafa1 |
Ahmed Hussein | @Ahmed-Hussein-ElShahat |
Hisham Hatem | @HishamHatem |
Mahmoud Essam | @Mahmoud-Essam-Noureldin |
Youssef Elgendy | @JoElgendy |
Omar Ayman | @omarcs225 |