Fsdb::F...ml_to_db(3)
okay bestie, welcome to Fsdb::F...ml_to_db(3) β thatβs the User Contributed Perl Documentation page for a little XML-to-fsdb converter. Itβs giving βniche but iconic,β and weβre gonna read it together. π
β¨ NAME β¨
xml_to_db β convert a subset of XML into fsdb
π¦ SYNOPSIS π¦
xml_to_db -k EntityField <source.xml
πΈ DESCRIPTION πΈ
Okay so this thing converts a very limited subset of XML into Fsdb format. No cap: limited limited.
The input is XML-format (not fsdb). It gets parsed as XML, and each entity of type ENTITYFIELD is extracted as a row. ENTITYFIELD can have multiple components separated by slashes, which lets you walk down the XML tree if necessary. Slay.
The input XML file is assumed to be very simple. All rows are assumed to be sequential in one entity. Anything other than the specified ENTITYFIELD is ignored. The schema is assumed to be defined by the first instances of that field.
The output is two-space-separated fsdb. (Someday more general field separators should be supported β manifesting β¨.) Fsdb fields are a normalized version of the CSV file: spaces are converted to single underscores.
heads up, bestie: this is a very limited subset and the input is assumed to be super simple. It is not a general XML parser vibe check. π
π OPTIONS π
-eEmptyValue or--emptyβ specify the value newly created columns get.
This module also supports the standard fsdb options:
π standard fsdb options, also supported
-dβ enable debugging output.-ior--inputInputSource β read from InputSource β typically a file name, or"-"for standard input, or (if in Perl) aIO::Handle,Fsdb::IOorFsdb::BoundedQueueobjects.-oor--outputOutputDestination β write to OutputDestination β typically a file name, or"-"for standard output, or (if in Perl) aIO::Handle,Fsdb::IOorFsdb::BoundedQueueobjects.--autorunor--noautorunβ by default, programs process automatically, butFsdb::Filterobjects in Perl do not run until you invoke therun()method. The--(no)autorunoption controls that behavior within Perl.--helpβ show help.--manβ show full manual.
π SAMPLE USAGE π
π§ Input:
<?xml version='1.0' standalone='yes'?>
<gnuPod>
<files>
<file addtime="3389919728" album="Born to Pick" artist="7th Day Buskers" title="Loch Lamor" />
<file addtime="3389919728" album="Born to Pick" artist="7th Day Buskers" title="The Floods" />
<file addtime="3389919735" album="Copland Conducts Copland" artist="Aaron Copland" title="Our Town" />
</files>
<playlist name="new shows" plid="97241" >
<regex artist="^(Le Show|This American Life)$" />
</playlist>
</gnuPod>
π οΈ Command:
xml_to_db -k files/file <gnupod.xml
π Output:
#fsdb -F S addtime album artist title
3389919728 Born to Pick 7th Day Buskers Loch Lamor
3389919728 Born to Pick 7th Day Buskers The Floods
3389919735 Copland Conducts Copland Aaron Copland Our Town
# | xml_to_db -k files/file
π SEE ALSO π
Fsdb.
π§ CLASS FUNCTIONS π§
π± new
$filter = new Fsdb::Filter::xml_to_db(@arguments);
Create a new xml_to_db object, taking command-line arguments.
π· set_defaults
$filter->set_defaults();
Internal: set up defaults.
π¦ parse_options
$filter->parse_options(@ARGV);
Internal: parse command-line arguments.
π₯ _find_entities
$filter->_find_entities
Internal: walk the ENTITYFIELD specification through the XML::Simple data structure. Returns an aref.
πΈ setup
$filter->setup();
Internal: setup, parse headers.
β run
$filter->run();
Internal: run over each row.
π AUTHOR and COPYRIGHT π
Copyright (C) 2011-2018 by John Heidemann <johnh@isi.edu>
This program is distributed under terms of the GNU general public license, version 2. See the file COPYING with the distribution for details.
xoxo bestie, this page is from perl v5.32.1, dated 2024-08-02 π
β¨
π¦ where this page comes from
- epel 9: perl-Fsdb 2:3.9-1.el9 Β· GPLv2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms