You are viewing a plain text version of this content. The canonical link for it is here.
Posted to p-dev@xerces.apache.org by "Jason E. Stewart" <ja...@openinformatics.com> on 2003/10/05 08:48:05 UTC
Re: Final questions with Xerces Perl
"Stephen Christensen" <sm...@hotmail.com> writes:
> Thanks for your help on my last question about Xerces Perl. I was
> able to get a great sample someone on the mailing list that really
> helped me figure out how to use Xerces.
Cool - lists are a great help.
> First, I have some elements that look like this:
> <value name="foo">
>
> I am currently calling $element->getNodeName(), which works great, and
> returns the string "value". However, I cannot figure out how to
> return the [ name="foo" ] part of the element.
my $name = $element->getAttribute('name');
> My understanding is that this is the attribute of the node... but is
> that correct? And if so, how do I retrieve that string?
> getAttributes returns a DOMNamedNodeMap, so that isn't correct,
> right?
See the README, section 8.3)
# returns a reference to a XML::Xerces::DOM_NamedNodeMap
my $attr_map_ref = $element_node->getAttributes();
# returns a hash of the attributes
my %attrs = $element_node->getAttributes();
put the method in scalar context and you get an object, put it in list
context and you get a Perl hash - I prefer the Perl hash.
> Secondly, the XML I am parsing has a lot of linebreaks in it. When
> I try to parse it, it attempts to read those linebreaks as elements.
> Is there a way to removewhitespace, or something of that nature?
Two answers:
1) $node->getNodeType eq $XML::Xerces::DOMNode::ELEMENT_NODE;
filter on the node type and throw away text nodes
2) if your XML file has a DTD you can can set a parser attribute to
ignore optional whitespace:
my $parser = XML::Xerces::AbstractDOMParser->new();
$parser->setIncludeIgnorableWhitespace(0);
now you will not get the newlines, but this only works if your XML
files use a DTD.
Cheers,
jas.
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-p-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-p-dev-help@xml.apache.org