| 1 | Readme.txt | 
 
 
 
 
 | 2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
 
 
 
 
 | 3 | XmlTools v2.0d | 
 
 
 
 
 | 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
 
 
 
 
 | 5 |  | 
 
 
 
 
 | 6 | ---------------------------------- | 
 
 
 
 
 | 7 | Description: | 
 
 
 
 
 | 8 | ---------------------------------- | 
 
 
 
 
 | 9 |  | 
 
 
 
 
 | 10 | XmlTools is a command-line modding tool that operates on XML files. | 
 
 
 
 
 | 11 |  | 
 
 
 
 
 | 12 | It supports many operations in XML files and even non implemented operations using custom javascript code. | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | It is developed in C++ and works in both Mac OS and Windows. | 
 
 
 
 
 | 15 |  | 
 
 
 
 
 | 16 | An additional guide with examples can be read here: http://wiki.oni2.net/XmlTools | 
 
 
 
 
 | 17 |  | 
 
 
 
 
 | 18 | ---------------------------------- | 
 
 
 
 
 | 19 | Full Features: | 
 
 
 
 
 | 20 | ---------------------------------- | 
 
 
 
 
 | 21 |  | 
 
 
 
 
 | 22 | -Update all values in a set of XML elements. (e.g., to reposition an OBAN animation or adjust pelvis height for a TRAM). | 
 
 
 
 
 | 23 |  | 
 
 
 
 
 | 24 | -Inverts a set of XML elements. (e.g., invert an OBAN animation). | 
 
 
 
 
 | 25 |  | 
 
 
 
 
 | 26 | -Add new values to a set of XML elements (e.g., add the 'unkillable' flag to some characters in a level). | 
 
 
 
 
 | 27 |  | 
 
 
 
 
 | 28 | -Remove values from a set of XML elements (e.g., remove boss shields from characters in a level). | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | -Replace values in a set XML elements (e.g., increase the health of characters by replacing the old HP value). | 
 
 
 
 
 | 31 |  | 
 
 
 
 
 | 32 | -Patch file support allows the modder to list multiple commands in a file, to all be performed at once. | 
 
 
 
 
 | 33 |  | 
 
 
 
 
 | 34 | -Add custom XML to existing files (patch only). | 
 
 
 
 
 | 35 |  | 
 
 
 
 
 | 36 | -Remove XML from existing files (patch only). | 
 
 
 
 
 | 37 |  | 
 
 
 
 
 | 38 | -Select elements using element name, parent element name, attribute name/value and XPath 1.0. | 
 
 
 
 
 | 39 |  | 
 
 
 
 
 | 40 | -Powerful custom XML editing using javascript (for what you can't do with native operations) (patch only). | 
 
 
 
 
 | 41 |  | 
 
 
 
 
 | 42 | ---------------------------------- | 
 
 
 
 
 | 43 | Installation (standalone version): | 
 
 
 
 
 | 44 | ---------------------------------- | 
 
 
 
 
 | 45 |  | 
 
 
 
 
 | 46 | Extract XmlTools folder to any place in your computer. Open it with command line on windows or terminal in Mac OS. | 
 
 
 
 
 | 47 |  | 
 
 
 
 
 | 48 | ---------------------------------- | 
 
 
 
 
 | 49 | Contacts: | 
 
 
 
 
 | 50 | ---------------------------------- | 
 
 
 
 
 | 51 |  | 
 
 
 
 
 | 52 | Script10k, "faob2@hotmail.com" | 
 
 
 
 
 | 53 |  | 
 
 
 
 
 | 54 | Oni Central Forum: | 
 
 
 
 
 | 55 | http://oni.bungie.org | 
 
 
 
 
 | 56 | ->Select forum | 
 
 
 
 
 | 57 |  | 
 
 
 
 
 | 58 | Oni Wiki: | 
 
 
 
 
 | 59 | http://wiki.oni2.net | 
 
 
 
 
 | 60 |  | 
 
 
 
 
 | 61 | ---------------------------------- | 
 
 
 
 
 | 62 | Change Log: | 
 
 
 
 
 | 63 | ---------------------------------- | 
 
 
 
 
 | 64 | 2.0d, 05-10-2017 | 
 
 
 
 
 | 65 | -Fixed bug in the processing of javascript files for XML custom processing (some files were not being processed) | 
 
 
 
 
 | 66 | -Some code refactoring to make the code more modular and easier to build (now uses s10k's "shared" libraries for | 
 
 
 
 
 | 67 | qtcreator projects) | 
 
 
 
 
 | 68 | ---------------------------------- | 
 
 
 
 
 | 69 | 2.0c, 30-10-2016 | 
 
 
 
 
 | 70 | -Fixed bug in --update-elements operation | 
 
 
 
 
 | 71 | -Added some exception handling | 
 
 
 
 
 | 72 | -Started migrating some of the source code to C++14 | 
 
 
 
 
 | 73 | -Upgraded pugixml to latest 1.7 version | 
 
 
 
 
 | 74 | -Dropped openmp since apple clang doesn't support it, using Qt threads mechanisms now | 
 
 
 
 
 | 75 | ---------------------------------- | 
 
 
 
 
 | 76 | 2.0b, 13-06-2014 | 
 
 
 
 
 | 77 | -Minor code fixes (use of singleton pattern) | 
 
 
 
 
 | 78 | -Fixed segmentation fault when providing a non-existing element name in patch files operations | 
 
 
 
 
 | 79 | ---------------------------------- | 
 
 
 
 
 | 80 | 2.0a, 02-03-2014 | 
 
 
 
 
 | 81 | -Added multithreading support for @CUSTOM_CODE (performance may increase over 3 times in a quadcore) | 
 
 
 
 
 | 82 | -Now a warning is given if a user javascript code (@CUSTOM_CODE) takes too much time to finish | 
 
 
 
 
 | 83 | -Fixed small bug when applying patches with @COMMAND + --no-verbose where some std output should not be displayed | 
 
 
 
 
 | 84 | -Added double single quotes in @COMMAND to allow single quotes in XPath expressions | 
 
 
 
 
 | 85 | ---------------------------------- | 
 
 
 
 
 | 86 | 2.0, 08-02-2014 | 
 
 
 
 
 | 87 | -Rewrite XmlTools fom the scratch from C# to C++ in order to increase (much!) the performance of the program | 
 
 
 
 
 | 88 | -The program now uses the following libraries: Qt5, pugixml and jsxml js library | 
 
 
 
 
 | 89 | -The commands were simplified (they now use unix like syntax) | 
 
 
 
 
 | 90 | -Update node operation (old updatechainvalues) it now receives the DIFFERENCE between the old value | 
 
 
 
 
 | 91 | and the new value instead of the new value | 
 
 
 
 
 | 92 | -Update node operation (old updatechainvalues) relation parameter was removed | 
 
 
 
 
 | 93 | -The program now only edits files with .xml extension | 
 
 
 
 
 | 94 | -The program now only reads patches files with .patch or .oni-patch extensions | 
 
 
 
 
 | 95 | -The patch files now have a XmlTools minimum version | 
 
 
 
 
 | 96 | -Some patch files operations were renamed and some extra arguments added | 
 
 
 
 
 | 97 | -Added option to select xml elements by attribute name and value | 
 
 
 
 
 | 98 | -Added option to select xml elements by XPath 1.0 (should reduce further the need of javascript) | 
 
 
 
 
 | 99 | -The insertion of xml via patch now support multiple nodes inside <xml></xml> tags | 
 
 
 
 
 | 100 | -Added exclusive option for AEI which allows AEI to pass a list of .oni-patches to process |