1

I want to modify this file so that the BOOKSEQNUM text will increment by 10 after starting from 1000, i.e. the first node text as 1010 then 1020 so on:

<root>
<BOOKSEQNUM DOCID="HKLAC_V14.0002.para0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0003.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0004.para0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0005.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0006.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0016.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0022.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0031.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0041.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0046.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0047.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0058.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0063.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0070.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0078.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0084.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0087.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0088.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0093.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0100.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0107.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0117.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0120.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0123.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0129.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0139.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0146.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0161.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0169.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0180.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0189.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0202.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0212.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0218.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0219.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0220.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0236.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0241.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0250.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0260.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0267.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0272.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0281.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0290.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0293.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0298.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0303.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0319.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0328.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0336.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0343.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0357.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0363.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0369.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0378.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0382.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0388.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0392.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0393.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0401.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0414.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0424.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0435.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0442.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0447.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0459.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0465.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0473.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0477.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0481.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0492.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0496.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0499.para0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0500.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0501.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0504.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0505.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0512.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0518.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0524.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0531.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0542.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0547.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0548.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0559.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0576.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0577.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0584.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0602.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0609.subpara0"></BOOKSEQNUM>
<BOOKSEQNUM DOCID="HKLAC_V14.0617.subpara0"></BOOKSEQNUM>
</root>

This is the python script i have written, how to write to the same document?

from lxml import etree

myXML = r"C:/Users/DalalNS/Desktop/splitingthecontent/HK_Chunking_Scripts/HKEFP/BookSeq_HKEFP_Aviation.xml"
tree = etree.parse(myXML)
root = tree.getroot()     
code = root.xpath('//root/BOOKSEQNUM')
count=1000
Root = etree.Element('root')
doc = etree.ElementTree(Root)

for i in code:
    print(i.attrib)
    count=count+10
    i.text=str(count)
    print(i.text)
1

1 Answer 1

3
from lxml import etree

filename = r'path/to/your/file.xml'  # change this
with open(filename, 'r') as f:
    tree = etree.parse(f)

start = 1000
for node in tree.findall('./'):
    node.text = str(start + 10)
    start += 10

with open(filename, 'wb') as f:
    tree.write(f)

Note: writing must be in binary mode, otherwise you'll get a TypeError.

Sign up to request clarification or add additional context in comments.

1 Comment

It should be f.write(tree).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.