You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axkit-dev@xml.apache.org by ma...@apache.org on 2002/05/26 17:34:21 UTC
cvs commit: xml-axkit/lib/Apache/AxKit/Language XSP.pm
matts 02/05/26 08:34:21
Modified: lib/Apache/AxKit/Language XSP.pm
Log:
Merged in Mike Chamberlain's patch
Revision Changes Path
1.10 +22 -15 xml-axkit/lib/Apache/AxKit/Language/XSP.pm
Index: XSP.pm
===================================================================
RCS file: /home/cvs/xml-axkit/lib/Apache/AxKit/Language/XSP.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XSP.pm 25 Mar 2002 07:28:17 -0000 1.9
+++ XSP.pm 26 May 2002 15:34:21 -0000 1.10
@@ -1,4 +1,4 @@
-# $Id: XSP.pm,v 1.9 2002/03/25 07:28:17 matts Exp $
+# $Id: XSP.pm,v 1.10 2002/05/26 15:34:21 matts Exp $
package Apache::AxKit::Language::XSP;
@@ -617,8 +617,8 @@
elsif ($tag eq 'element') {
if (my $name = $attribs{name}) {
$e->manage_text(0);
- return '{ my $elem = $document->createElement(' . makeSingleQuoted($name) . ');' .
- '$parent->appendChild($elem); $parent = $elem; }' . "\n";
+ return 'my $elem; { $elem = $document->createElement(' . makeSingleQuoted($name) . ');' .
+ 'my $parent = $elem; ' . "\n";
}
}
elsif ($tag eq 'attribute') {
@@ -696,8 +696,8 @@
elsif ($tag eq 'name') {
if ($node->{Parent}->{Name} =~ /^(.*:)?element$/) {
$e->manage_text(0, 1);
- return '; my $elem = $document->createElement($name);' .
- '$parent->appendChild($elem); $parent = $elem; }' . "\n";
+ return '; my $elem; { $elem = $document->createElement($name);' .
+ ' my $parent = $elem; ' . "\n";
}
elsif ($node->{Parent}->{Name} =~ /^(.*:)?attribute$/) {
$e->{attrib_seen_name} = 1;
@@ -763,7 +763,7 @@
'my ($parent);',
"\n",
);
- $e->{XSP_User_Root} = 1;
+ $e->{XSP_User_Root} = [ 1 ];
# $code = '{ my $elem = $document->createElement(q(' . $node->{Name} . '));' .
# $code = '{ my $elem = $document->createElementNS(q(' . ($node->{NamespaceURI} || "") . '), q(' . $node->{Name} . '));' .
@@ -781,16 +781,18 @@
$e->{XSP_Random_Sequence}++;
}
}
- $code = '{ my $elem = $document->createElementNS('.makeSingleQuoted($node->{NamespaceURI}).','.makeSingleQuoted($node->{Name}).');' .
- '$document->setDocumentElement($elem); $parent = $elem; }' . "\n";
+ $code = 'my $elem; { $elem = $document->createElementNS('.makeSingleQuoted($node->{NamespaceURI}).','.makeSingleQuoted($node->{Name}).');' .
+ 'my $parent = $elem; ' . "\n";
}
else {
- $code = '{ my $elem = $document->createElement('.makeSingleQuoted($node->{Name}).');' .
- '$document->setDocumentElement($elem); $parent = $elem; }' . "\n";
+ $code = 'my $elem; { $elem = $document->createElement('.makeSingleQuoted($node->{Name}).');' .
+ '#$document->setDocumentElement($elem);'."\n".
+ ' my $parent = $elem; ' . "\n";
}
}
else {
# $code = '{ my $elem = $document->createElement(q(' . $node->{Name} . '));' .
+ push(@{$e->{XSP_User_Root}}, 0);
if ($node->{NamespaceURI}) {
if ($node->{Name} !~ m/:/) {
if (exists $e->{XSP_Random_Map}{$node->{NamespaceURI}}) {
@@ -802,12 +804,12 @@
$e->{XSP_Random_Sequence}++;
}
}
- $code = '{ my $elem = $document->createElementNS('.makeSingleQuoted($node->{NamespaceURI}).','.makeSingleQuoted($node->{Name}).');' .
- '$parent->appendChild($elem); $parent = $elem; }' . "\n";
+ $code = 'my $elem; { $elem = $document->createElementNS('.makeSingleQuoted($node->{NamespaceURI}).','.makeSingleQuoted($node->{Name}).');' .
+ 'my $parent = $elem; ' . "\n";
}
else {
- $code = '{ my $elem = $document->createElement('.makeSingleQuoted($node->{Name}).');' .
- '$parent->appendChild($elem); $parent = $elem; }' . "\n";
+ $code = ' my $elem; { $elem = $document->createElement('.makeSingleQuoted($node->{Name}).');' .
+ ' my $parent = $elem; ' . "\n";
}
}
@@ -845,8 +847,13 @@
my ($e, $element) = @_;
$e->{Current_NS} = pop @{ $e->{NS_Stack} };
+
+ if(pop(@{$e->{XSP_User_Root}}) == 0) {
+ return '} $parent->appendChild($elem); '. "\n";
+ } else {
+ return '} $document->setDocumentElement($elem);'."\n";
+ }
- return '$parent = $parent->getParentNode;' . "\n";
}
sub characters {