matts 2003/03/18 07:18:20
Modified: lib/Apache/AxKit/Language XSP.pm
Log:
Fix for xmlns="" bug
Revision Changes Path
1.39 +22 -16 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.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- XSP.pm 20 Feb 2003 10:22:19 -0000 1.38
+++ XSP.pm 18 Mar 2003 15:18:20 -0000 1.39
@@ -877,21 +877,15 @@
}
for my $attr (@{$node->{Attributes}}) {
-# $code .= '$parent->setAttribute(q(' . $attr->{Name} .
-# '), q(' . $attr->{Value} .
-# '));' . "\n";
$code .= '$parent->setAttribute('.makeSingleQuoted($attr->{Name}).
','.makeSingleQuoted($attr->{Value}).");\n";
}
for my $ns (keys %{$e->{Current_NS}}) {
-# $code .= '$parent->setAttribute("xmlns:" . q(' . $ns .'), q(' .
-# $e->{Current_NS}{$ns} . '));';
if ($ns eq '#default') {
- $code .= '$parent->setAttribute("xmlns",' .
+ $code .= '$parent->setAttributeNS("","xmlns",' .
makeSingleQuoted($e->{Current_NS}{$ns}) . ');';
}
-
else {
$code .= '$parent->setAttribute("xmlns:" .
'.makeSingleQuoted($ns).',' .
makeSingleQuoted($e->{Current_NS}{$ns}) . ');';
@@ -1040,14 +1034,26 @@
foreach my $attr ($element->getAttributes) {
my $lineno = eval { $attr->lineNumber; } if $debug;
- push @attr, {
- Name => encodeToUTF8($encoding,$attr->getName),
- Value => encodeToUTF8($encoding,$attr->getData),
- NamespaceURI => encodeToUTF8($encoding,$attr->getNamespaceURI),
- Prefix => encodeToUTF8($encoding,$attr->getPrefix),
- LocalName => encodeToUTF8($encoding,$attr->getLocalName),
- LineNumber => $lineno,
- };
+ if ($attr->getName) {
+ push @attr, {
+ Name => encodeToUTF8($encoding,$attr->getName),
+ Value => encodeToUTF8($encoding,$attr->getData),
+ NamespaceURI =>
encodeToUTF8($encoding,$attr->getNamespaceURI),
+ Prefix => encodeToUTF8($encoding,$attr->getPrefix),
+ LocalName => encodeToUTF8($encoding,$attr->getLocalName),
+ LineNumber => $lineno,
+ };
+ }
+ else {
+ push @attr, {
+ Name => "xmlns",
+ Value => "",
+ NamespaceURI => "",
+ Prefix => "",
+ LocalName => "",
+ LineNumber => $lineno,
+ };
+ }
}
my $lineno = eval { $element->lineNumber; } if $debug;