0

我是使用 Python 的初学者。我要做的是更新某个发票列表的 InvoiceStatus - 我想将其更新为“N”而不是“A”。在 XML 文件提取下方:

<?xml version="1.0" encoding="WINDOWS-1252"?>
<AuditFile>
    <Header>
        <AuditFileVersion>1.04_01</AuditFileVersion>
        <CompanyID>51630</CompanyID>
    </Header>
    <MasterFiles>
        <Customer>
            <CustomerID>20201376</CustomerID>
            <AccountID>20000</AccountID>
        </Customer>
    </MasterFiles>
    <SourceDocuments>
        <SalesInvoices>
            <NumberOfEntries>981</NumberOfEntries>
            <Invoice>
                <InvoiceNo>F2 UF/3510000211</InvoiceNo>
                <ATCUD>0</ATCUD>
                <DocumentStatus>
                    <InvoiceStatus>A</InvoiceStatus>
                    <SourceBilling>P</SourceBilling>
                </DocumentStatus>
                <InvoiceNo>F2 UF/3510020247</InvoiceNo>
                <ATCUD>0</ATCUD>
                <DocumentStatus>
                    <InvoiceStatus>A</InvoiceStatus>
                    <SourceBilling>P</SourceBilling>
                </DocumentStatus>
                <InvoiceNo>F2 UF/3510020247</InvoiceNo>
                <ATCUD>0</ATCUD>
                <DocumentStatus>
                    <InvoiceStatus>A</InvoiceStatus>
                    <SourceBilling>P</SourceBilling>
                </DocumentStatus>
            </Invoice>
        </SalesInvoices>
    </SourceDocuments>
</AuditFile>

这里的脚本:

 from xml.dom import minidom
 def reemplazaTexto(nodo,textonuevo):
        
    nodo.firstChild.replaceWholeText(textonuevo)

    doc = minidom.parse('sample.xml')
    print(doc.toxml())
    
    invoices = doc.getElementsByTagName('InvoiceStatus')
    
    for nodo in invoices:
        reemplazaTexto(nodo, 'N')
        
    print(doc.toxml())

但是这个脚本修改了所有的 InvoiceStatus。我将不胜感激。

干杯,阿克塞尔

4

0 回答 0