NAME
Catmandu::Importer::XML - Import serialized XML documents
DESCRIPTION
This Catmandu::Importer reads XML and transforms it into a data structure.
See Catmandu::Importer, Catmandu::Iterable, Catmandu::Logger and Catmandu::Fixable for methods and options derived from these modules.
The importer can also be used internally for custom importers that need to parse XML data.
CONFIGURATION
- type
-
By default (type "
simple
"), elements and attributes and converted to keys in a key-value structure. For instance this document:<doc attr="value"> <field1>foo</field1> <field1>bar</field1> <bar> <doz>baz</doz> </bar> </doc>
is imported as
{ attr => 'value', field1 => [ 'foo', 'bar' ], field2 => { 'doz' => 'baz' }, }
With type "
ordered
" elements are preserved in the order of their appereance. For instance the sample document above is imported as:[ doc => { attr => "value" }, [ [ field1 => { }, ["foo"] ], [ field1 => { }, ["bar"] ], [ field2 => { }, [ [ doz => { }, ["baz"] ] ] ] ] ]
- depth
-
Maximum depth for type "
simple
". For instance with depth 1, the sample document above would be imported as:{ attr => 'value', field1 => [ 'foo', 'bar' ], field2 => { doz => [ [ doz => { }, ["baz"] ] ] } }
- attributes
-
Include XML attributes. Enabled by default.
- path
-
Path expression to select XML elements. If not set the root element is selected.
- root
-
Include root element name for type
simple
. Disabled by default. The option is ignored if type is notsimple
or if apath
has explicitly been set. - ns
-
Set to
strip
for stripping namespace prefixes and xmlns-attributes. - whitespace
-
Include ignoreable whitespace. Disabled by default.
- xslt
-
Optional (list of) XSLT stylesheets to process records with Catmandu::XML::Transformer.
- transform
-
Deprecated alias for option
xslt
.
SEE ALSO
This module is just a thin layer on top of XML::Struct::Reader. Have a look at XML::Struct to implement Importers and Exporters for more specific XML-based data formats.