XML Parser multiple elements

Hi There,

I’m new to Knime and love it so far but i’m getting stuck on parsing a XML file.

i am trying to convert an xml document to a table. The XML has multiple element levels with sublevels.

The xml file looks like:
Journal 1
Transaction 1
Line 1
subline 1
subline 2
subline 3
line 2
subline 1
subline 2
subline 3
line 3
subline 1
subline 2
subline 3
Transaction 2
line 1
subline 1
subline 2
subline 3
line 2
subline 1
subline 2
subline 3
Journal 2
Transaction 1
Line 1
subline 1
subline 2
subline 3
line 2
subline 1
subline 2
subline 3
line 3
subline 1
subline 2
subline 3

I would like the data to be presented in a table like

|Journal 1|transaction 1|line 1|subline 1|
|Journal 1|transaction 1|line 1|subline 2|
|Journal 1|transaction 1|line 1|subline 3|
|Journal 1|transaction 1|line 2|subline 1|
|Journal 1|transaction 1|line 2|subline 2|
|Journal 1|transaction 1|line 2|subline 3|
|Journal 1|transaction 1|line 3|subline 1|
|Journal 1|transaction 1|line 3|subline 2|
|Journal 1|transaction 1|line 3|subline 3|
|Journal 1|transaction 2|line 1|subline 1|
|Journal 1|transaction 2|line 1|subline 2|
|Journal 1|transaction 2|line 1|subline 3|
|Journal 1|transaction 2|line 2|subline 1|
|Journal 1|transaction 2|line 2|subline 2|
|Journal 1|transaction 2|line 2|subline 3|
|Journal 2|transaction 1|line 1|subline 1|
|Journal 2|transaction 1|line 2|subline 2|
|Journal 2|transaction 1|line 3|subline 3|

My settings for xpath are like:
/journal (multiple row)
/journal/transaction (multiple row)
/Journal/transaction/line (multiple row)
/journal/transaction/line/subline (multiple row)

Can somebody help me and what am i doing wrong? accounting file.xml (2.6 MB)

Thanks in advance!

Dino_

1 Like

Hi @Dino,

You can extract each level as “Node cell” and use another XPath node to parse it. Here is an example using your XML file:

24261-1-1.knwf (1.1 MB)

Let me know if you have any other questions.

:blush:

4 Likes

Hi Armingrudd,

That is exactly what i was trying to do! Looks easy when you know what you are doing :grinning:

I can see where i was going the wrong way and understand now the use of de setting node cell.

Small question. In one of the first lines of the Xpath node you use a wildcard journal[]
auditfile/transactions/journal[
]/journalID

Why do you use the wildcard? When i try it without the wildcard it also works.
Is it for multiple lines or something or am i missing something? If it is for multiple lines, why isn’t it used for
transaction/line/recordID

Thanks for your help!

3 Likes

Hi again,

No, there is no specific reason. I used it in the first node out of habit. :sweat_smile:

:blush:

1 Like

Lol, Thanks again for your help!

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.