Stephen Jeffrey Hindmarch created NIFI-13335:
------------------------------------------------
Summary: XMLReader drops values from name-value content if values
are mixture of strings and numbers
Key: NIFI-13335
URL: https://issues.apache.org/jira/browse/NIFI-13335
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Affects Versions: 1.24.0
Environment: Docker
Reporter: Stephen Jeffrey Hindmarch
This is similar to NIFI-13334, but does not require an array of records to
demonstrate.
If you create an XMLReader service and set the following:
* Parse XML Attributes = false
* Expect Records as Arrays = true
* Field Name for Content = Value
Then use the reader in a ConvertRecord processor with a JSONRecordSetWriter
When parsing a flow file such as
{noformat}
<Event Type="foo">
<System>
<EventID>0x0001</EventID>
</System>
<UserData>
<Data Name="Param1">String1</Data>
<Data Name="Param2">String2</Data>
<Data Name="Param3">String3</Data>
</UserData>
</Event>{noformat}
then the data tags all get parsed with the correct values.
{noformat}
[ {
"Type" : "foo",
"System" : {
"EventID" : "0x0001"
},
"UserData" : {
"Data" : [ {
"Name" : "Param1",
"Value" : "String1"
}, {
"Name" : "Param2",
"Value" : "String2"
}, {
"Name" : "Param3",
"Value" : "String3"
} ]
}
} ]{noformat}
But if one of those data tags has a numeric value then all of the values are
dropped and are replaced with null. For example
{noformat}
<Event Type="foo">
<System>
<EventID>0x0001</EventID>
</System>
<UserData>
<Data Name="Param1">String1</Data>
<Data Name="Param2">2</Data>
<Data Name="Param3">String3</Data>
</UserData>
</Event>
{noformat}
parses to
{noformat}
[ {
"Type" : "foo",
"System" : {
"EventID" : "0x0001"
},
"UserData" : {
"Data" : [ {
"Name" : "Param1",
"Value" : null
}, {
"Name" : "Param2",
"Value" : null
}, {
"Name" : "Param3",
"Value" : null
} ]
}
} ]{noformat}
and all of the tag data is lost.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)