urgent multi-draft fixes from amalfi
[stet:stet.git] / rtNoAuth / formxml.pl
1 # Copyright (C)  2006   Software Freedom Law Center, Inc.
2 # Author: Orion Montoya <orion@mdcclv.com>
3 #
4 # This software gives you freedom; it is licensed to you under version
5 # 3 of the GNU Affero General Public License, along with the
6 # additional permission in the following paragraph.
7 #
8 # This notice constitutes a grant of such permission as is necessary
9 # to combine or link this software, or a modified version of it, with
10 # Request Tracker (RT), published by Jesse Vincent and Best Practical
11 # Solutions, LLC, or a derivative work of RT, and to copy, modify, and
12 # distribute the resulting work.  RT is licensed under version 2 of
13 # the GNU General Public License.
14 #  
15 # This software is distributed WITHOUT ANY WARRANTY, without even the
16 # implied warranties of MERCHANTABILITY and FITNESS FOR A PARTICULAR
17 # PURPOSE.  See the GNU Affero General Public License for further
18 # details.
19 #  
20 # You should have received a copy of the GNU Affero General Public
21 # License, version 3, and the GNU General Public License, version 2,
22 # along with this software.  If not, see <http://www.gnu.org/licenses/>.
23
24 use XML::DOM;
25
26 my $parser = new XML::DOM::Parser;
27 my $doc = $parser->parsefile ("/var/www/stet/gplv3-draft-1.xml");
28
29 my $nodes = $doc->getElementsByTagName ("sent");
30 my $n = $nodes->getLength;
31
32 $selection = "software are designed";
33 our ($dompath, $startid, $matched, $notesubj, $ticket_body, $form, $wholefile) = 0;
34 for (my $i = 0; $i < $n; $i++)
35 {
36     my $node = $nodes->item($i);
37     my $sent = $node->toString;
38     $sent =~ s/\s+/ /g;
39     if ($sent =~ m/$selection/) {
40     print $sent;
41         $matched++;
42
43         $startid = $node->getAttribute('id');
44         $dompath = $node->getParentNode->getParentNode->getParentNode->getNodeName;
45         $dompath .= "/".$node->getParentNode->getParentNode->getNodeName;
46         $dompath .= "[id=".$node->getParentNode->getParentNode->getAttributeNode('id')->getValue."]/";
47         $dompath .= $node->getParentNode->getNodeName;
48         $dompath .= "[id=".$node->getParentNode->getAttributeNode('id')->getValue."]/";
49         $dompath .= $node->getNodeName."[id=".$node->getAttributeNode('id')->getValue."]"; 
50         
51     }
52 }
53
54 print $startid."\n".$dompath."\n";
55  # Avoid memory leaks - cleanup circular references for garbage collection
56  $doc->dispose;