source: XmlTools2/examples/BINACJBOCharacter.oni-patch@ 924

Last change on this file since 924 was 920, checked in by s10k, 11 years ago

more fixes and updated examples

File size: 3.1 KB
RevLine 
[920]1#########################################################################################
2############################## XmlTools Patch File Example ##############################
3#########################################################################################
4
5########## Comments in patch files begin with '#'
6
7########## You can comment and uncomment commands to see their effect
8########## in BINACJBOCharacter.xml file
9
10# The following row is always required in a XmlTools patch.
11# It defines the minimum version of XmlTools executable that it requires.
[919]12@XML_TOOLS Version "2.0"
13
[920]14# This command adds a new XML node (inside of <xml></xml> tags) to all OSD named nodes.
15@ADD_INSIDE_NODES ElementName "OSD" Files "BINACJBOCharacter.xml"
[919]16<xml>
[920]17 <Attack>
18 <Start>0</Start>
19 <End>30</End>
20 <Bones>Pelvis Chest Neck Head LeftShoulder LeftArm LeftWrist LeftFist RightShoulder RightArm RightWrist RightFist</Bones>
21 <Flags>Unblockable</Flags>
22 <Knockback>0</Knockback>
23 <HitPoints>10</HitPoints>
24 <HitType>KnockdownBody</HitType>
25 <HitLength>0</HitLength>
26 <StunLength>0</StunLength>
27 <StaggerLength>0</StaggerLength>
28 <Extents/>
29 </Attack>
[919]30</xml>
31
[920]32# This command removes the nodes inserted in the previous command using ElementName and ParentElementName.
33@REMOVE_NODES ElementName "Attack" ParentElementName "OSD" Files "BINACJBOCharacter.xml"
34
35# This command adds a new XML node (inside of <xml></xml> tags) to the nodes that matches the XPathExpression.
36@ADD_INSIDE_NODES XPathExpression "/Oni/Objects/CHAR/OSD" Files "BINACJBOCharacter.xml"
[919]37<xml>
38 <Attack>
39 <Start>0</Start>
40 <End>30</End>
41 <Bones>Pelvis Chest Neck Head LeftShoulder LeftArm LeftWrist LeftFist RightShoulder RightArm RightWrist RightFist</Bones>
42 <Flags>Unblockable</Flags>
43 <Knockback>0</Knockback>
44 <HitPoints>10</HitPoints>
45 <HitType>KnockdownBody</HitType>
46 <HitLength>0</HitLength>
47 <StunLength>0</StunLength>
48 <StaggerLength>0</StaggerLength>
49 <Extents/>
50 </Attack>
51</xml>
52
[920]53# This command removes the nodes inserted in the previous command using an XPathExpression.
54@REMOVE_NODES XPathExpression "/Oni/Objects/CHAR/OSD/Attack" Files "BINACJBOCharacter.xml"
[919]55
[920]56# This command executes any of the XmlTools commands (see all possible command using XmlTools --help)
57@COMMAND Arguments "--files 'BINACJBOCharacter.xml' --element-name 'Position' --invert-elements"
[919]58
[920]59# This command executes the javascript inside the (inside of <code></code> tags)
[919]60
[920]61# The current javascript code first gets the element name "CHAR" with an attribute Id=11565
62# then it gets the child element "OSD" and set its Weapon element value to "MyAwesomeOniWeapon"
63@CUSTOM_CODE Files "BINACJBOCharacter.xml"
[919]64<code>
[920]65 var myBuilder = new JSXMLBuilder();
66 myBuilder.load($xmlData);
[919]67
[920]68 var elements = myBuilder.elements;
[919]69
70 for (var i = 0; i < elements.length; i++) {
71 if(elements[i].name=="CHAR" && elements[i].attributeString==" Id=\"11565\""){
72 elements[i].childElement("OSD").childElement("Weapon").text="MyAwesomeOniWeapon";
73 break;
74 }
75 }
76
77 $xmlData=myBuilder.generateXML(); // update the global variable with the new XML
78</code>
Note: See TracBrowser for help on using the repository browser.