Python Forum
Editing text between two string from different lines
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Editing text between two string from different lines
#1
I want to edit atributte values from xml file and replace every "\n" to "(newline)\n". This is necesary because I need to keep structure of xml file while after parsing, it is standaraized and whitespaces are gone, so I want to, firstly, add string like "newline) before whitespaces so after parsing xml file, when it will be standarized and whitespaces will be gone, I will edit whole file and replace string "(newline)" back to single "\n".

Picture below shows what I want to do:
[Image: QisXc.png]

I tried to use regex to get text between "value=" and "/>" but I can get only values if it is in one line and I don't even know how to edit it after.

    import re
    with open("file", "r") as f:
        contents = f.readlines()
        for line in contents:
            result = re.search('value=(.*?) />', line)
            print(result)
There is my file:

<Module bs="Mainfile_1">
    <object id="1000" name="namex" number="1">
        <item name="item0" value="100"/>
        <item name="item00" value="100
    	
    	100"/>
    </object>
    <object id="1001" name="namey" number="2">
        <item name="item1" value="100"/>
        <item name="item00" value="100"/>
    </object>
    <object id="1234" name="name1" number="3">
        <item name="item1" value="FAIL"/>
        <item name="item2" value="233"/>
        <item name="item3" value="233
    	234
    	246"/>
        <item name="item4" value="FAIL"/>
    </object>
    <object id="1238" name="name2" number="4">
        <item name="item8" value="FAIL"/>
        <item name="item9" value="233
    	234
    	
    	245
    	246
    	267"/>
    </object>
    <object id="2345" name="name32" number="5">
        <item name="item1" value="111"/>
        <item name="item2" value="FAIL" />
    </object>
    <object id="2347" name="name4" number="6">
        <item name="item1" value="FAIL"/>
        <item name="item2" value="FAIL"/>
        <item name="item3" value="233"/>
        <item name="item4" value="FAIL"/>
    </object>
    </Module>
Reply
#2
Here is one way of going about it:
output_file = open ('test2.xml','w')
with open ('test.xml', 'r') as input_file :
	for line in input_file :
		line = line.strip ('\n')
		if line [-1] != '>' :
			line += '(newline)'
		output_file.write (line + '\n')
output_file.close ()
Output:
<Module bs="Mainfile_1"> <object id="1000" name="namex" number="1"> <item name="item0" value="100"/> <item name="item00" value="100(newline) (newline) 100"/> </object> <object id="1001" name="namey" number="2"> <item name="item1" value="100"/> <item name="item00" value="100"/> </object> <object id="1234" name="name1" number="3"> <item name="item1" value="FAIL"/> <item name="item2" value="233"/> <item name="item3" value="233(newline) 234(newline) 246"/> <item name="item4" value="FAIL"/> </object> <object id="1238" name="name2" number="4"> <item name="item8" value="FAIL"/> <item name="item9" value="233(newline) 234(newline) (newline) 245(newline) 246(newline) 267"/> </object> <object id="2345" name="name32" number="5"> <item name="item1" value="111"/> <item name="item2" value="FAIL" /> </object> <object id="2347" name="name4" number="6"> <item name="item1" value="FAIL"/> <item name="item2" value="FAIL"/> <item name="item3" value="233"/> <item name="item4" value="FAIL"/> </object> </Module>
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Sad How to split a String from Text Input into 40 char chunks? lastyle 7 1,122 Aug-01-2023, 09:36 AM
Last Post: Pedroski55
  Extracting Specific Lines from text file based on content. jokerfmj 8 2,951 Mar-28-2022, 03:38 PM
Last Post: snippsat
  I want to simplify this python code into fewer lines, it's about string mandaxyz 5 2,118 Jan-15-2022, 01:28 PM
Last Post: mandaxyz
  Extract a string between 2 words from a text file OscarBoots 2 1,866 Nov-02-2021, 08:50 AM
Last Post: ibreeden
Question [SOLVED] Delete specific characters from string lines EnfantNicolas 4 2,200 Oct-21-2021, 11:28 AM
Last Post: EnfantNicolas
  raspberry use scrolling text two lines together fishbone 0 1,446 Sep-06-2021, 03:24 AM
Last Post: fishbone
  Replace String in multiple text-files [SOLVED] AlphaInc 5 8,091 Aug-08-2021, 04:59 PM
Last Post: Axel_Erfurt
  fuzzywuzzy search string in text file marfer 9 4,555 Aug-03-2021, 02:41 AM
Last Post: deanhystad
  More elegant way to remove time from text lines. Pedroski55 6 3,921 Apr-25-2021, 03:18 PM
Last Post: perfringo
  reading lines from a string [Solved] ebolisa 14 6,353 Mar-28-2021, 08:16 PM
Last Post: perfringo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020