我有一个xml树作为字符串。我想将此树插入beautifulsoup对象内的另一个标记中。你知道吗
我想在标记<voucher action="Create" objview="Accounting Voucher View" vchtype="Journal">
内插入字符串stra
。你知道吗
在原始文件中,凭证标签内没有任何内容。你知道吗
代码:
from bs4 import BeautifulSoup as bs
stra = r'''<DATE>20190101</DATE>
<VOUCHERTYPENAME>Journal</VOUCHERTYPENAME>
<VOUCHERNUMBER>5</VOUCHERNUMBER>
<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW>
<EFFECTIVEDATE>20190101</EFFECTIVEDATE>
<MASTERID> 1</MASTERID>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Salary Payable</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>1000.00</AMOUNT>
<VATEXPAMOUNT>1000.00</VATEXPAMOUNT>
</ALLLEDGERENTRIES.LIST>'''
newsoup=bs(stra)
f = open(r"F:\Users\Administrator\Desktop\TallyJVXml.txt").read()
soup = bs(f,'lxml')
l = soup.find("voucher".lower())
l.append(stra)
print(soup)
电流输出:
<html><body><envelope>
<header>
<tallyrequest>Import Data</tallyrequest>
</header>
<importdata>
<requestdesc>
<reportname>Vouchers</reportname>
<staticvariables>
<svcurrentcompany>SOAC</svcurrentcompany>
</staticvariables>
</requestdesc>
<requestdata>
<tallymessage xmlns:udf="TallyUDF">
<voucher action="Create" objview="Accounting Voucher View" vchtype="Journal">
<DATE>20190101</DATE>
<VOUCHERTYPENAME>Journal</VOUCHERTYPENAME>
<VOUCHERNUMBER>5</VOUCHERNUMBER>
<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW>
<EFFECTIVEDATE>20190101</EFFECTIVEDATE>
<MASTERID> 1</MASTERID>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Salary Payable</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>1000.00</AMOUNT>
<VATEXPAMOUNT>1000.00</VATEXPAMOUNT>
</ALLLEDGERENTRIES.LIST></voucher>
</tallymessage>
</requestdata>
</importdata>
</envelope>
</body></html>
期望输出:
<ENVELOPE>
<HEADER>
<TALLYREQUEST>Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<REQUESTDESC>
<REPORTNAME>Vouchers</REPORTNAME>
<STATICVARIABLES>
<SVCURRENTCOMPANY>SOAC</SVCURRENTCOMPANY>
</STATICVARIABLES>
</REQUESTDESC>
<REQUESTDATA>
<TALLYMESSAGE xmlns:UDF="TallyUDF">
<VOUCHER VCHTYPE="Journal" ACTION="Create" OBJVIEW="Accounting Voucher View">
<DATE>20190101</DATE>
<VOUCHERTYPENAME>Journal</VOUCHERTYPENAME>
<VOUCHERNUMBER>5</VOUCHERNUMBER>
<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW>
<EFFECTIVEDATE>20190101</EFFECTIVEDATE>
<MASTERID> 1</MASTERID>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Basic Salary</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<AMOUNT>-1000.00</AMOUNT>
<VATEXPAMOUNT>-1000.00</VATEXPAMOUNT>
<CATEGORYALLOCATIONS.LIST>
<CATEGORY>Primary Cost Category</CATEGORY>
<COSTCENTREALLOCATIONS.LIST>
<NAME>Shoeb</NAME>
<AMOUNT>-1000.00</AMOUNT>
</COSTCENTREALLOCATIONS.LIST>
</CATEGORYALLOCATIONS.LIST>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Salary Payable</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>1000.00</AMOUNT>
<VATEXPAMOUNT>1000.00</VATEXPAMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
</TALLYMESSAGE>
</REQUESTDATA>
</IMPORTDATA>
</BODY>
</ENVELOPE>
如何修改代码来实现这一点?你知道吗
谢谢你的建议。谢谢。你知道吗
印刷品:
版本2-要保留大写XML字符串(
data1
,data2
与前面的相同):印刷品:
相关问题 更多 >
编程相关推荐