summaryrefslogtreecommitdiff
path: root/Xerl/XML/Element.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Xerl/XML/Element.pm')
-rw-r--r--Xerl/XML/Element.pm48
1 files changed, 48 insertions, 0 deletions
diff --git a/Xerl/XML/Element.pm b/Xerl/XML/Element.pm
new file mode 100644
index 0000000..aadccec
--- /dev/null
+++ b/Xerl/XML/Element.pm
@@ -0,0 +1,48 @@
+# Xerl (c) 2005-2011, 2013-2015 by Paul Buetow
+#
+# E-Mail: xerl@dev.buetow.org WWW: https://xerl.buetow.org
+#
+# This is free software, you may use it and distribute it under the same
+# terms as Perl itself.
+
+package Xerl::XML::Element;
+
+use strict;
+use warnings;
+
+use Xerl::Base;
+
+sub starttag {
+ my $self = $_[0];
+ my ( $name, $temp ) = ( $_[1], undef );
+
+ return $self if $self->get_name() eq $name;
+ return undef if ref $self->get_array() ne 'ARRAY';
+
+ for ( @{ $self->get_array() } ) {
+ $temp = $_->starttag($name);
+ return $temp if defined $temp;
+ }
+
+ return undef;
+}
+
+sub starttag2 {
+ my $self = $_[0];
+ my ( $name, $after ) = @_[ 1 ... 2 ];
+
+ my $element = $self->starttag($name);
+ return $element->starttag($after) if defined $element;
+
+ return undef;
+}
+
+sub params_str {
+ my $self = $_[0];
+ my $params = $self->get_params();
+
+ return undef if $params eq '';
+ return join '', map { " $_=\"" . $params->{$_} . '"' } keys %$params;
+}
+
+1;