【发布时间】:2022-01-18 19:37:04
【问题描述】:
我有这些 xml 文件,我从 ftp 获取它们(使用 list 和 fetch ftp 处理器)。我想从 xml 文件中获取值并用这些值替换文件,因为它是 csv 。 (并使用 putFtp 处理器将它们放回 ftp)
想要的输出是这样的:
{"foodate":"somedate","name":"fooid1_foovalue","value":5.44}
{"foodate":"somedate","name":"fooid1_metrics","value":some-metrics}
.
.
.
{"foodate":"somedate","name":"fooid2_foovalue","value":2.34}
.
.
.
因此,对于每个 id,先写入 foodate 属性,然后再写入 id1、sample - 属性 1、id1、sample - 属性 2 等。
但是每次我不知道名称或属性的数量。只有第一个示例属性将是 foodate。知道如何进行吗?我尝试使用 executeScript 处理器和 js,但它似乎无法识别 DOMParser() 等。
<?xml version="1.0" encoding="ISO-8859-1"?>
<Document Version="2">
<ExportData lowerBound="2021/11/24 16:58:26" upperBound="2021/11/24 22:58:26">
<Site name="name" f="">
<Kapta fooid1="some-number">
<Infos>
<Info>
<EndPoint foo="value-name" />
</Info>
</Infos>
<Samples ordering="desc">
<Sample foodate="some-date" foovalue="5.44" metrics="some-metrics" metrics2="metrics-again" value="numbers5" te="numbers" />
<Sample foodate="some-date" foovalue="7.45" foom="some-metrics" metrics453="metrics-again" otherattribut="numbers5" att345="numbers" morevalues="numbers" foohdeiurf="numbers" hello="numbers"/>
</Samples>
</Kapta>
<Kapta fooid2="some-number">
<Infos>
<Info>
<EndPoint foo="value-name" />
</Info>
</Infos>
<Samples ordering="desc">
<Sample foodate="some-date" foovalue="2.34" metrics="some-metrics" metrics2="metrics-again" value="numbers" te="numbersagain" />
<Sample foodate="some-date" foo="99.8" metrics="some-metrics" metrics2="metrics-again" value="numbers" te="numbers" />
<Sample foodate="some-date" attr="234.56" someothermetrics="some-metrics" metr="metrics-again" anothervalue="numbers" />
</Samples>
</Kapta>
</Site>
</ExportData>
</Document>
Thanks a lot for your time and effort!
【问题讨论】:
-
预期结果是什么?
-
预期结果类似于 {fooid, foodate="some-date" foovalue="some-numbers" metrics="some-metrics" metrics2="metrics-again" value="numbers5" te="numbers"} {fooid, foodate="some-date" foovalue="some-numbers" foom="some-metrics" metrics453="metrics-again" otherattribut="numbers5" att345="numbers" morevalues="数字" foohdeiurf="numbers" hello="numbers"}
-
你想把它放在哪里?流文件内容或属性?是json格式吗?请编辑您的问题并提供包括预期结果在内的答案。
-
你说得对,我会编辑我的问题并添加更多详细信息。谢谢
标签: xml xml-parsing apache-nifi