我正在尝试通过基于其他元素的值来更改某些元素的值来编辑XML文件,但我似乎没有通过。我正在使用talend,尽管我有点新,但至少可以读取和输出XML文件,并且可以对元素值进行一些细微更改,尽管基于某些条件的更改(我在下面解释)失败了。以下是我在这种情况下使用的XML和代码:
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<ZipBill>
<NonUsage>
<Details Service="Mobile" Lines="1" Amount="10000" />
<Details Service="Landline" Lines="1" Amount="10000" />
</NonUsage>
<Usage>
<Details Service="Mobile" Amount="191084" />
<Details Service="Landline" Amount="73544" />
</Usage>
<WithoutTax>
<Details Description="Total before Tax" Amount="284628" />
</WithoutTax>
<TotalTax>
<Details Description="VAT(18%)" Amount="51233" />
<Details Description="Excise Duty(12%)-GSM" Amount="31755" />
<Details Description="Excise Duty(5%)-Fixed line" Amount="0" />
</TotalTax>
<TotalAmount>
<Details Description="Total Inclusive Tax" Amount="367616" />
</TotalAmount>
</ZipBill>
现在,我想做的是更改元素为<TotalTax>
的{{1}}标签中的数量值,并使元素为{{1 }},其中元素为<Details Description="Excise Duty(5%)-Fixed line" Amount="0" />
,并在用法标签中将元素设为<Details Service="Landline" Amount="73544" />
,使其值为0.05 * amount。换句话说,我想在<Details Description="Excise Duty(12%)-GSM" Amount="31755" />
下的{{1}中的<Details Service="Mobile" Amount="191084" />
中搜索金额值,并将其乘以0.12,然后替换{{1}下的<Details>
中的<usage>
中的金额},将Service="Landline"
和<Details>
乘以0.12,然后将<TotalTax>
下Description="Excise Duty(5%)-Fixed line"
下Service="Mobile"
中的金额替换。
我在talend中定义了三个变量来进行剧院替换,但是我在xml中得到了重复的字段。关于如何修改这些变量或任何其他选项的任何想法都将有所帮助。
我使用的变量:
<Details>
我得到的输出错误:
<TotalTax>