I need to grab attributes from the XML file with pure bash script.
So I have the following XML file with a root element `Group` and lots of `Person` elements, every of them has `id` and `username` attributes. `id` is unique value for each element:
And I need to use bash script to extract the `id` and `username` attributes into some key-value structure:
Checked other related answers, but most of them suggest to use some XML parsers like xmllint. But unfortunately I do not have them on the target machine.
Can you kindly suggest what how I can achieve this. Thanks in advance.
I have an xml file:
<AutoData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Table1>
<Data1 10 </Data1>
<Data2 20 </Data2>
<Data3 40 </Data3>
<Table1>
</AutoData>
and I have to remove the portion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" only.
I tried using sed... (10 Replies)
:confused:
Hello,
Is there any way to use the dir command / some DOS Script to select only first file of similar pattern of files in a direcotory and rename it for example, one directory has 5 files
abc_1005.txt
abc_5256.txt
abc_2001.txt
abc_2003.txt
abc_3006.txt
by use script I would... (2 Replies)
Hi,
Iam new to shell scripting.I have below urgent requirement
I want to read attributes (transaction,documentmode) in xml tag with shell scripting and create a filename with these attribues
Xml :
<PURCHASE_10 partner="food" version="1.50" timestamp="2009-03-10T09:56:55"... (3 Replies)
I am completely new to bash scripting and now need to write a bash script that would parse a XML file and take out values from specific tags.
I tried using xsltproc, xml_grep commands. But the issue is that the XML i am trying to parse is not UTF 8. so those commands are unable to parse my XML's... (4 Replies)
Hi guys,
I'm working on a large set of scripts to move files around several servers and manipulate them for our staff. Basically we're shooting things, the videos hit a server and then need organised due to the language they've been shot in. Our XML (designed for Apple's Final Cut Pro) is right... (6 Replies)
I need to extract all text delimited from <name> and </name> tags from an xml file, but not only first occurence. I need to extract all occurences.
I've tried with this command:
awk -F"<name>|</name>" 'NF>2{print $2}'
but it give only first occurence. How can i modify it? (18 Replies)
Hi ! I'm working into my first bash script to make some xml modification and it's going to make me crazy lol .. so I decide to try into this forum to take some ideas from people that really know about this!
This is my situation I've and xml file with a lots of positional values with another tags... (9 Replies)
I tried searching the forums, but couldn't find anything relevant to my question.
I have an xml file like the following:
<topLevel numberBlock="BLOCK1">
<item="content1" title="Content 1">
<RefPath="path/to/file1.txt />
</item>
<item"content2" title="Content 2" >... (4 Replies)
Hi All,
Hope all you are doing good! Need your help. I have an XML file which needs to be converted CSV file. I am not an expert of awk/sed so your help is highly appreciated!!
XML file looks like this:
<l:event dateTime="2013-03-13 07:15:54.713" layerName="OSB" processName="ABC"... (2 Replies)
I have multiple xml files where i want to update a subnode if the subnode project points to different project or insert a subnode if it doesn't exist using a xmlstarlet or any other command that can be used in a bash script.
I have been able to update the subnode project if it doesn't point to... (1 Reply)
Discussion started by: Sekhar419
1 Replies
LEARN ABOUT DEBIAN
mkdoc::xml::treebuilder
MKDoc::XML::TreeBuilder(3pm) User Contributed Perl Documentation MKDoc::XML::TreeBuilder(3pm)NAME
MKDoc::XML::TreeBuilder - Builds a parsed tree from XML data
SYNOPSIS
my @top_nodes = MKDoc::XML::TreeBuilder->process_data ($some_xml);
SUMMARY
MKDoc::XML::TreeBuilder uses MKDoc::XML::Tokenizer to turn XML data into a parsed tree. Basically it smells like an XML parser, looks like
an XML parser, and awfully overlaps with XML parsers.
But it's not an XML parser.
XML parsers are required to die if the XML data is not well formed. MKDoc::XML::TreeBuilder doesn't give a rip: it'll parse whatever as
long as it's good enough for it to parse.
XML parsers expand entities. MKDoc::XML::TreeBuilder doesn't. At least not yet.
XML parsers generally support namespaces. MKDoc::XML::TreeBuilder doesn't - and probably won't.
DISCLAIMER
This module does low level XML manipulation. It will somehow parse even broken XML and try to do something with it. Do not use it unless
you know what you're doing.
API
my @top_nodes = MKDoc::XML::Tokenizer->process_data ($some_xml);
Returns all the top nodes of the $some_xml parsed tree.
Although the XML spec says that there can be only one top element in an XML file, you have to take two things into account:
1. Pseudo-elements such as XML declarations, processing instructions, and comments.
2. MKDoc::XML::TreeBuilder is not an XML parser, it's not its job to care about the XML specification, so having multiple top elements is
just fine.
my $tokens = MKDoc::XML::Tokenizer->process_data ('/some/file.xml');
Same as MKDoc::XML::TreeBuilder->process_data ($some_xml), except that it reads $some_xml from '/some/file.xml'.
Returned parsed tree - data structure
I have tried to make MKDoc::XML::TreeBuilder look enormously like HTML::TreeBuilder. So most of this section is stolen and slightly
adapted from the HTML::Element man page.
START PLAGIARISM HERE
It may occur to you to wonder what exactly a "tree" is, and how it's represented in memory. Consider this HTML document:
<html lang='en-US'>
<head>
<title>Stuff</title>
<meta name='author' content='Jojo' />
</head>
<body>
<h1>I like potatoes!</h1>
</body>
</html>
Building a syntax tree out of it makes a tree-structure in memory that could be diagrammed as:
html (lang='en-US')
/
/
/
head body
/
/
/
title meta h1
| (name='author', |
"Stuff" content='Jojo') "I like potatoes"
This is the traditional way to diagram a tree, with the "root" at the top, and it's this kind of diagram that people have in mind when they
say, for example, that "the meta element is under the head element instead of under the body element". (The same is also said with
"inside" instead of "under" -- the use of "inside" makes more sense when you're looking at the HTML source.)
Another way to represent the above tree is with indenting:
html (attributes: lang='en-US')
head
title
"Stuff"
meta (attributes: name='author' content='Jojo')
body
h1
"I like potatoes"
Incidentally, diagramming with indenting works much better for very large trees, and is easier for a program to generate. The $tree->dump
method uses indentation just that way.
However you diagram the tree, it's stored the same in memory -- it's a network of objects, each of which has attributes like so:
element #1: _tag: 'html'
_parent: none
_content: [element #2, element #5]
lang: 'en-US'
element #2: _tag: 'head'
_parent: element #1
_content: [element #3, element #4]
element #3: _tag: 'title'
_parent: element #2
_content: [text segment "Stuff"]
element #4 _tag: 'meta'
_parent: element #2
_content: none
name: author
content: Jojo
element #5 _tag: 'body'
_parent: element #1
_content: [element #6]
element #6 _tag: 'h1'
_parent: element #5
_content: [text segment "I like potatoes"]
The "treeness" of the tree-structure that these elements comprise is not an aspect of any particular object, but is emergent from the
relatedness attributes (_parent and _content) of these element-objects and from how you use them to get from element to element.
STOP PLAGIARISM HERE
This is pretty much the kind of data structure MKDoc::XML::TreeBuilder returns. More information on different nodes and their type is
available in MKDoc::XML::Token.
NOTES
Did I mention that MKDoc::XML::TreeBuilder is NOT an XML parser?
AUTHOR
Copyright 2003 - MKDoc Holdings Ltd.
Author: Jean-Michel Hiver
This module is free software and is distributed under the same license as Perl itself. Use it at your own risk.
SEE ALSO
MKDoc::XML::Token MKDoc::XML::Tokenizer
perl v5.10.1 2004-10-06 MKDoc::XML::TreeBuilder(3pm)