Sponsored Content
Top Forums Shell Programming and Scripting How to insert a CSV within xml element tag using Python? Post 303032444 by panyam on Monday 18th of March 2019 11:25:31 AM
Old 03-18-2019
How to insert a CSV within xml element tag using Python?

Hi Team,
I have a CSV file which I have to read through and needs to insert the content within an XML file using Python ONLY ( as most of the code base we have in python only). I managed to find the first part, missing how to insert to XML under "specific" tags.
Code:
cat input.csv
Host,PUBLICIP,PRIVATEIP,RAC
hactive,10.47.47.196,427.47.47.196,01
hpassive,10.47.47.197,47.47.47.197,01
hutility,10.47.47.198,47.47.47.198,01
datanode1,10.47.47.199,47.47.47.199,01
datanode2,10.47.47.207,47.47.47.207,01

Code:
import os,sys
import csv
from xml.etree import ElementTree as ET

str = ""

with open('input.csv', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    for row in csv_reader:
        str += '<Host_name="' + row["Host"] + '" Private_Addr="' + row["PRIVATEIP"] + '" Public_Addr="' + row["PUBLICIP"] + '" RACK_NO="' + row["RAC"] + '"/> \n'
    print(str.rstrip())

I want to insert the above output in to the below XML, in between <HostNames>:

Code:
                        <HostNames>
                                <Host name="node3" Pvt_IPADDR="47.47.47.197" Pub_IPADDR="10.47.47.197" RACK_NO="01"/>
                                <! --- The string I formatted , I want to put here" -->
                        </HostNames>


Note: <HostNames> tag can be any where in the config.xml and new "str" I want to put to the end of <HostNames> only.

Any help, really appreciable.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract multiple xml tag value into CSV format

Hi All, Need your assistance on another xml tag related issue. I have a xml file as below: <INVOICES> <INVOICE> <BILL> <BILL_NO>1234</BILL_NO> <BILL_DATE>01 JAN 2011</BILL_DATE> </BILL> <NAMEINFO> <NAME>ABC</NAME> </NAMEINFO> </INVOICE> <INVOICE> <BILL> <BILL_NO>5678</BILL_NO>... (12 Replies)
Discussion started by: angshuman
12 Replies

2. Shell Programming and Scripting

Find if XML element has a matching required element

I want to check if every <Part> element has corresponding <Description> in this sample XML. ....<Lot Of XML> <Inv lineNumber="2"> <Item> ... (4 Replies)
Discussion started by: kchinnam
4 Replies

3. Shell Programming and Scripting

How to retrieve the value from XML tag whose end tag is in next line

Hi All, Find the following code: <Universal>D38x82j1JJ </Universal> I want to retrieve the value of <Universal> tag as below: Please help me. (3 Replies)
Discussion started by: mjavalkar
3 Replies

4. Shell Programming and Scripting

How to add the multiple lines of xml tags before a particular xml tag in a file

Hi All, I'm stuck with adding multiple lines(irrespective of line number) to a file before a particular xml tag. Please help me. <A>testing_Location</A> <value>LA</value> <zone>US</zone> <B>Region</B> <value>Russia</value> <zone>Washington</zone> <C>Country</C>... (0 Replies)
Discussion started by: mjavalkar
0 Replies

5. Shell Programming and Scripting

awk command to insert a tag in XML

Hi All, I need a help on inserting a XML tag. Actual input <var> <nam>abcd</nam> <a1>.</a1> </var> if tag <a1>.</a1> is getting missed in XML like below <var> <nam>abcd</nam> </var> i need to insert wherever it is missed after <nam> tag and before </var> tag. Could anyone... (3 Replies)
Discussion started by: mohanalakshmi
3 Replies

6. Shell Programming and Scripting

XML Parse between to tag with upper tag

Hi Guys Here is my Input : <?xml version="1.0" encoding="UTF-8"?> <xn:MeContext id="01736"> <xn:VsDataContainer id="01736"> <xn:attributes> <xn:vsDataType>vsDataMeContext</xn:vsDataType> ... (12 Replies)
Discussion started by: pareshkp
12 Replies

7. Shell Programming and Scripting

To search for a particular tag in xml and collate all similar tag values and display them count

I want to basically do the below thing. Suppose there is a tag called object1. I want to display an output for all similar tag values under heading of Object 1 and the count of the xmls. Please help File: <xml><object1>house</object1><object2>child</object2>... (9 Replies)
Discussion started by: srkmish
9 Replies

8. Shell Programming and Scripting

Pass some data from csv to xml file using shell/python

Hello gurus, I have a csv file with bunch of datas in each column. (see attached) Now I have an .xml file in the structure of below: ?xml version="1.0" ?> <component id="root" name="root"> <component id="system" name="system"> <param name="number_of_A" value="8"/> ... (5 Replies)
Discussion started by: Zam_1234
5 Replies

9. Shell Programming and Scripting

Moving XML tag/contents after specific XML tag within same file

Hi Forum. I have an XML file with the following requirement to move the <AdditionalAccountHolders> tag and its content right after the <accountHolderName> tag within the same file but I'm not sure how to accomplish this through a Unix script. Any feedback will be greatly appreciated. ... (19 Replies)
Discussion started by: pchang
19 Replies

10. UNIX for Beginners Questions & Answers

Grepping multiple XML tag results from XML file.

I want to write a one line script that outputs the result of multiple xml tags from a XML file. For example I have a XML file which has below XML tags in the file: <EMAIL>***</EMAIL> <CUSTOMER_ID>****</CUSTOMER_ID> <BRANDID>***</BRANDID> Now I want to grep the values of all these specified... (1 Reply)
Discussion started by: shubh752
1 Replies
XML::Handler::XMLWriter(3)				User Contributed Perl Documentation				XML::Handler::XMLWriter(3)

NAME
XML::Handler::XMLWriter - a PerlSAX handler for writing readable XML SYNOPSIS
use XML::Parser::PerlSAX; use XML::Handler::XMLWriter; $my_handler = XML::Handler::XMLWriter->new( I<OPTIONS> ); XML::Parser::PerlSAX->new->parse(Source => { SystemId => 'REC-xml-19980210.xml' }, Handler => $my_handler); DESCRIPTION
"XML::Handler::XMLWriter" is a PerlSAX handler for writing readable XML (in contrast to Canonical XML, for example). XML::Handler::XMLWriter can be used with a parser to reformat XML, with XML::DOM or XML::Grove to write out XML, or with other PerlSAX modules that generate events. "XML::Handler::XMLWriter" is intended to be used with PerlSAX event generators and does not perform any checking itself (for example, matching start and end element events). If you want to generate XML directly from your Perl code, use the XML::Writer module. XML::Writer has an easy to use interface and performs many checks to make sure that the XML you generate is well-formed. "XML::Handler::XMLWriter" is a subclass of "XML::Handler::Subs". "XML::Handler::XMLWriter" can be further subclassed to alter it's behavior or to add element-specific handling. In the subclass, each time an element starts, a method by that name prefixed with `s_' is called with the element to be processed. Each time an element ends, a method with that name prefixed with `e_' is called. Any special characters in the element name are replaced by underscores. If there isn't a start or end method for an element, the default action is to write the start or end tag. Start and end methods can use the `"print_start_element()"' and `"print_end_element()"' methods to print start or end tags. Subclasses can call the `"print()"' method to write additional output. Subclassing XML::Handler::XMLWriter in this way is similar to XML::Parser's Stream style. XML::Handler::Subs maintains a stack of element names, `"$self-"{Names}', and a stack of element nodes, `"$self-"{Nodes}>' that can be used by subclasses. The current element is pushed on the stacks before calling an element-name start method and popped off the stacks after calling the element-name end method. See XML::Handler::Subs for additional methods. In addition to the standard PerlSAX handler methods (see PerlSAX for descriptions), XML::Handler::XMLWriter supports the following methods: new( OPTIONS ) Creates and returns a new instance of XML::Handler::XMLWriter with the given OPTIONS. Options may be changed at any time by modifying them directly in the hash returned. OPTIONS can be a list of key, value pairs or a hash. The following OPTIONS are supported: Output An IO::Handle or one of it's subclasses (such as IO::File), if this parameter is not present and the AsString option is not used, the module will write to standard output. AsString Return the generated XML as a string from the `"parse()"' method of the PerlSAX event generator. Newlines A true or false value; if this parameter is present and its value is true, then the module will insert an extra newline before the closing delimiter of start, end, and empty tags to guarantee that the document does not end up as a single, long line. If the paramter is not present, the module will not insert the newlines. IsSGML A true or false value; if this parameter is present and its value is true, then the module will generate SGML rather than XML. print_start_element($element) Print a start tag for `$element'. This is the default action for the PerlSAX `"start_element()"' handler, but subclasses may use this if they define a start method for an element. print_end_element($element) Prints an end tag for `$element'. This is the default action for the PerlSAX `"end_element()"' handler, but subclasses may use this if they define a start method for an element. print($output) Write `$output' to Output and/or append it to the string to be returned. Subclasses may use this to write additional output. TODO
o An Elements option that provides finer control over newlines than the Newlines option, where you can choose before and after newline for element start and end tags. Inspired by the Python XMLWriter. o Support Doctype and XML declarations. AUTHOR
Ken MacLeod, ken@bitsko.slc.ut.us This module is partially derived from XML::Writer by David Megginson. SEE ALSO
perl(1), PerlSAX.pod(3) perl v5.12.1 2003-10-21 XML::Handler::XMLWriter(3)
All times are GMT -4. The time now is 10:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy