| 1 | 
 Readme.txt | 
 
 
 
 
 
 | 2 | 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
 
 
 
 
 
 | 3 | 
 XmlTools v2.0e | 
 
 
 
 
 
 | 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 | 
 s10k, "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.0e, 16-02-2019 | 
 
 
 
 
 
 | 65 | 
 -Fixed bug in the processing of patch files when the target XML contained an apostrophe (') in the path | 
 
 
 
 
 
 | 66 | 
 ---------------------------------- | 
 
 
 
 
 
 | 67 | 
 2.0d, 05-10-2017 | 
 
 
 
 
 
 | 68 | 
 -Fixed bug in the processing of javascript files for XML custom processing (some files were not being processed) | 
 
 
 
 
 
 | 69 | 
 -Some code refactoring to make the code more modular and easier to build (now uses s10k's "shared" libraries for  | 
 
 
 
 
 
 | 70 | 
 qtcreator projects) | 
 
 
 
 
 
 | 71 | 
 ---------------------------------- | 
 
 
 
 
 
 | 72 | 
 2.0c, 30-10-2016 | 
 
 
 
 
 
 | 73 | 
 -Fixed bug in --update-elements operation | 
 
 
 
 
 
 | 74 | 
 -Added some exception handling | 
 
 
 
 
 
 | 75 | 
 -Started migrating some of the source code to C++14 | 
 
 
 
 
 
 | 76 | 
 -Upgraded pugixml to latest 1.7 version | 
 
 
 
 
 
 | 77 | 
 -Dropped openmp since apple clang doesn't support it, using Qt threads mechanisms now | 
 
 
 
 
 
 | 78 | 
 ---------------------------------- | 
 
 
 
 
 
 | 79 | 
 2.0b, 13-06-2014 | 
 
 
 
 
 
 | 80 | 
 -Minor code fixes (use of singleton pattern) | 
 
 
 
 
 
 | 81 | 
 -Fixed segmentation fault when providing a non-existing element name in patch files operations | 
 
 
 
 
 
 | 82 | 
 ---------------------------------- | 
 
 
 
 
 
 | 83 | 
 2.0a, 02-03-2014 | 
 
 
 
 
 
 | 84 | 
 -Added multithreading support for @CUSTOM_CODE (performance may increase over 3 times in a quadcore) | 
 
 
 
 
 
 | 85 | 
 -Now a warning is given if a user javascript code (@CUSTOM_CODE) takes too much time to finish | 
 
 
 
 
 
 | 86 | 
 -Fixed small bug when applying patches with @COMMAND + --no-verbose where some std output should not be displayed | 
 
 
 
 
 
 | 87 | 
 -Added double single quotes in @COMMAND to allow single quotes in XPath expressions | 
 
 
 
 
 
 | 88 | 
 ---------------------------------- | 
 
 
 
 
 
 | 89 | 
 2.0, 08-02-2014 | 
 
 
 
 
 
 | 90 | 
 -Rewrite XmlTools fom the scratch from C# to C++ in order to increase (much!) the performance of the program | 
 
 
 
 
 
 | 91 | 
 -The program now uses the following libraries: Qt5, pugixml and jsxml js library | 
 
 
 
 
 
 | 92 | 
 -The commands were simplified (they now use unix like syntax) | 
 
 
 
 
 
 | 93 | 
 -Update node operation (old updatechainvalues) it now receives the DIFFERENCE between the old value  | 
 
 
 
 
 
 | 94 | 
 and the new value instead of the new value | 
 
 
 
 
 
 | 95 | 
 -Update node operation (old updatechainvalues) relation parameter was removed | 
 
 
 
 
 
 | 96 | 
 -The program now only edits files with .xml extension | 
 
 
 
 
 
 | 97 | 
 -The program now only reads patches files with .patch or .oni-patch extensions | 
 
 
 
 
 
 | 98 | 
 -The patch files now have a XmlTools minimum version | 
 
 
 
 
 
 | 99 | 
 -Some patch files operations were renamed and some extra arguments added | 
 
 
 
 
 
 | 100 | 
 -Added option to select xml elements by attribute name and value | 
 
 
 
 
 
 | 101 | 
 -Added option to select xml elements by XPath 1.0 (should reduce further the need of javascript) | 
 
 
 
 
 
 | 102 | 
 -The insertion of xml via patch now support multiple nodes inside <xml></xml> tags | 
 
 
 
 
 
 | 103 | 
 -Added exclusive option for AEI which allows AEI to pass a list of .oni-patches to process |