[librecat-dev] Catmandu and XML transformation

Patrick Hochstenbach Patrick.Hochstenbach at UGent.be
Wed May 10 16:05:50 CEST 2017


I don’t understand the XML exporter that well myself. The core of the required conversion would be to rondtrip XML document. But I fail to find out how to do this with Catmandu::XML. Can someone help?

I want to do:

 $ catmandu XML  to XML < books.xml  > output.xml

and expect to have output.xml have the same XML information as the input XML (except for spacing,etc). But what I get is at least an extra ‘<root>’ element.

Does somebody know what needs to be added to the command above to get same output and input document?

Patrick

> On 9 May 2017, at 16:35, Jorg Delutan <jdelutan at gmail.com> wrote:
> 
> Dear all,
> 
> i cannot make what i want
> 
> with XML::Twig
> 
> i think is is overkill, for what i would like to do, would like to use Catmandu::XML better, for this:
> 
> say i have the following xml file, named Input.xml:
> 
> A librarian gives me a list of search values for title, in a file, named for example fileA.txt row by row:
> 
> XML Developer's Guide
> The Sundered Grail
> etc...
>  for each of the above values, i need to search and replace the title node, in the below XML, according to a rule.
> 
> She also gives me a second file, named fileB.txt, which looks like this:
> 
> Programming. XML Developer's Guide text added
> History. The Sundered Grail with additios
> etc...
> 
> The rule, is  to replace all instances of each row found in fileA.txt, (exact match), and replace them with the corresponding row in fileB.txt, but with what follows the dot, and the space character.
> 
> AND, i must enter another xml node, named <subtitle>, which will hold the value of what exists before the dot and space characters.
> 
> An example:
> 
> 
> <book id="bk101">
> 
> 
> <author>Gambardella, Matthew</author>
> 
> 
> <title>XML Developer's Guide</title>
> 
> 
> <genre>Computer</genre>
> 
> 
> <price>44.95</price>
> 
> 
> <publish_date>2000-10-01</publish_date>
> 
> 
> <description>
> An in-depth look at creating applications
>       with XML.
> </description>
> 
> 
> </book>
> 
> should become:
> <book id="bk101">
>       <author>Gambardella, Matthew</author>
>       <title>XML Developer's Guide text added</title>
>       <subtitle>Programming</title>
>       <genre>Computer</genre>
>       <price>44.95</price>
>       <publish_date>2000-10-01</publ
> ish_date>
>       <description>An in-depth look at creating applications
>       with XML.</description>
>    </book>
> 
> Please find below the sample xml i have:
> 
> what command line fix you would suggest, so i could run it for example with a cron task?
> ?xml version="1.0"?>
> <catalog>
> 
> 
> <book id="bk101">
> 
> 
> <author>Gambardella, Matthew</author>
> 
> 
> <title>XML Developer's Guide</title>
> 
> 
> <genre>Computer</genre>
> 
> 
> <price>44.95</price>
> 
> 
> <publish_date>2000-10-01</publish_date>
> 
> 
> <description>
> An in-depth look at creating applications
>       with XML.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk102">
> 
> 
> <author>Ralls, Kim</author>
> 
> 
> <title>Midnight Rain</title>
> 
> 
> <genre>Fantasy</genre>
> 
> 
> <price>5.95</price>
> 
> 
> <publish_date>2000-12-16</publish_date>
> 
> 
> <description>
> A former architect battles corporate zombies,
>       an evil sorceress, and her own childhood to become queen
>       of the world.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk103">
> 
> 
> <author>Corets, Eva</author>
> 
> 
> <title>Maeve Ascendant</title>
> 
> 
> <genre>Fantasy</genre>
> 
> 
> <price>5.95</price>
> 
> 
> <publish_date>2000-11-17</publish_date>
> 
> 
> <description>
> After the collapse of a nanotechnology
>       society in England, the young survivors lay the
>       foundation for a new society.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk104">
> 
> 
> <author>Corets, Eva</author>
> 
> 
> <title>Oberon's Legacy</title>
> 
> 
> <genre>Fantasy</genre>
> 
> 
> <price>5.95</price>
> 
> 
> <publish_date>2001-03-10</publish_date>
> 
> 
> <description>
> In post-apocalypse England, the mysterious
>       agent known only as Oberon helps to create a new life
>       for the inhabitants of London. Sequel to Maeve
>       Ascendant.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk105">
> 
> 
> <author>Corets, Eva</author>
> 
> 
> <title>The Sundered Grail</title>
> 
> 
> <genre>Fantasy</genre>
> 
> 
> <price>5.95</price>
> 
> 
> <publish_date>2001-09-10</publish_date>
> 
> 
> <description>
> The two daughters of Maeve, half-sisters,
>       battle one another for control of England. Sequel to
>       Oberon's Legacy.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk106">
> 
> 
> <author>Randall, Cynthia</author>
> 
> 
> <title>Lover Birds</title>
> 
> 
> <genre>Romance</genre>
> 
> 
> <price>4.95</price>
> 
> 
> <publish_date>2000-09-02</publish_date>
> 
> 
> <description>
> When Carla meets Paul at an ornithology
>       conference, tempers fly as feathers get ruffled.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk107">
> 
> 
> <author>Thurman, Paula</author>
> 
> 
> <title>Splish Splash</title>
> 
> 
> <genre>Romance</genre>
> 
> 
> <price>4.95</price>
> 
> 
> <publish_date>2000-11-02</publish_date>
> 
> 
> <description>
> A deep sea diver finds true love twenty
>       thousand leagues beneath the sea.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk108">
> 
> 
> <author>Knorr, Stefan</author>
> 
> 
> <title>Creepy Crawlies</title>
> 
> 
> <genre>Horror</genre>
> 
> 
> <price>4.95</price>
> 
> 
> <publish_date>2000-12-06</publish_date>
> 
> 
> <description>
> An anthology of horror stories about roaches,
>       centipedes, scorpions  and other insects.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk109">
> 
> 
> <author>Kress, Peter</author>
> 
> 
> <title>Paradox Lost</title>
> 
> 
> <genre>Science Fiction</genre>
> 
> 
> <price>6.95</price>
> 
> 
> <publish_date>2000-11-02</publish_date>
> 
> 
> <description>
> After an inadvertant trip through a Heisenberg
>       Uncertainty Device, James Salway discovers the problems
>       of being quantum.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk110">
> 
> 
> <author>O'Brien, Tim</author>
> 
> 
> <title>Microsoft .NET: The Programming Bible</title>
> 
> 
> <genre>Computer</genre>
> 
> 
> <price>36.95</price>
> 
> 
> <publish_date>2000-12-09</publish_date>
> 
> 
> <description>
> Microsoft's .NET initiative is explored in
>       detail in this deep programmer's reference.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk111">
> 
> 
> <author>O'Brien, Tim</author>
> 
> 
> <title>MSXML3: A Comprehensive Guide</title>
> 
> 
> <genre>Computer</genre>
> 
> 
> <price>36.95</price>
> 
> 
> <publish_date>2000-12-01</publish_date>
> 
> 
> <description>
> The Microsoft MSXML3 parser is covered in
>       detail, with attention to XML DOM interfaces, XSLT processing,
>       SAX and more.
> </description>
> 
> 
> </book>
> 
> 
> <book id="bk112">
> 
> 
> <author>Galos, Mike</author>
> 
> 
> <title>Visual Studio 7: A Comprehensive Guide</title>
> 
> 
> <genre>Computer</genre>
> 
> 
> <price>49.95</price>
> 
> 
> <publish_date>2001-04-16</publish_date>
> 
> 
> <description>
> Microsoft Visual Studio 7 is explored in depth,
>       looking at how Visual Basic, Visual C++, C#, and ASP+ are
>       integrated into a comprehensive development
>       environment.
> </description>
> 
> 
> </book>
> </catalog>
> 
> Thank you
> 
> 
> _______________________________________________
> librecat-dev mailing list
> - send list mails to librecat-dev at lists.uni-bielefeld.de
> - to unsubscribe or change options, visit https://lists.uni-bielefeld.de/mailman2/cgi/unibi/listinfo/librecat-dev
> - project website: http://librecat.org/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.uni-bielefeld.de/mailman2/unibi/public/librecat-dev/attachments/20170510/2c84aa03/attachment.asc>


More information about the librecat-dev mailing list