For example, there's really no simple and maintainable way to write the code necessary to generate and parse the following XML:
<Person Nationality=”US”>
<Name>
<First>John</First>
<Last>Doe</Last>
</Name>
</Person>
The existing tools require understanding way too much about the details of the XML language (e.g., DOM) and get in the way of the average developer doing useful work with XML data. For examples, this is the code required to read only a single attribute of an XML entity:

When I think easy, I imagine a tool that will allow the developer to:
1.) define a simple LabVIEW data structure that is analogous to an XML data structure of interest and
2.) use it to generate and parse the XML data.
For example, generating and parsing XML data in LabVIEW should be as easy as creating a cluster:
The good news is that JKI Software has just released such a tool that lets you work with XML by simply creating a cluster in LabVIEW. For example, you can create an XML playlist with just one VI and a cluster, as show in the screenshot, below.
And, parsing XML is just as easy, as you can see in this example that downloads the LAVA RSS feed and parses the data into a cluster.
This new tool is called the EasyXML Toolkit for LabVIEW and is a low-cost ($39 introductory price) toolkit that can be installed using VI Package Manager. And, you can even download the demo for free, using VIPM. Now, that's easy.
I prematurely hit the “publish” button, yesterday, when I released this blog article. The result was that the article sounded too much like a cheap ad and not enough like an informative article. So, today, I updated the article with some more useful information. Ya, this article is still a plug for EasyXML, but I hope you find it informative
Nice tool! Unfortunately I’m about to publish a clone of it for free
Alex: Don’t let us stop you
But, please give our free demo a try. We’ve worked hard to make sure that EasyXML is very robust, full of many nice usability features (e.g., pretty-print, support for attributes, graceful handling of comments, etc.), and is of the high-quality you’d expect from commercial grade software. I happily take on the challenge of trying to win you as a customer
Do you manage attributes? Like this:
[xml comments filtered out by blog]
Alex: Yes, sorry, the blog does filter anything that might look like XML, since that might be a security issue when the HTML is rendered. You can read more about how attributes are handled in the documentation, here. Basically, attributes are achieved by placing a cluster named “#attributes” as the first cluster element of the xml element cluster.
Alex,
Could you provide a link to your free toolkit? Curious about that one as well.
Jim,
Would it be possible (technically) to have the XML parser generate a cluster automatically. So that you can get that without, in advance, knowing what XML data you are getting. I guess that would be a variant then? Wonder how you would display that??
Oskar: We could, conceivably parse the XML data without knowing the LabVIEW data structure, in advance — yes, putting this in a variant would make sense. In a future version of the software, we are considering adding a utility that would allow you to create a cluster from the XML string, in order to reduce the work required to create a VI that can parse an XML string. We’ve got a lot of additional ease-of-use features that we’re working on, too
Alex: I’m curious to see your tool, too.
Its nice to know other people have the same needs and are working towards a more robust parser. I remember a year ago, I couldn’t find any discussions or code that could parse XML into a LabVIEW cluster. I actually spent some time developing my own vi to do just that. I’ve finally got it to a point where I think others could use it and improve upon it. However, I have no idea where I could share it.
On LAVA you can post such info at the CR in development portal.
or as a new thread.
Ton
Vincent: As Ton mentioned, the LAVA Code Repository is a great place to share your code. But, if you don’t want to do something that formal, you can just post your code to the LAVA discussion forums for people to see.
What is the difference between the trial version of the software and the purchased version? I cant seem to find an online comparison of the two.
Jon: the trail version of EasyXML is full-featured, but will present a dialog, telling you that it is a demo version.
Where did you find the first (orange) VI that converts the XML string into a DOM parser session? I can’t find it anywhere…
I think it’s part of the Internet toolkit
Ton
I though it was too but I cannot find that specific one anywhere. I have all the other ones.
Eli: That’s a custom VI that I wrote. It’s part of what makes it hard to use XML in LabVIEW, I guess
Basically, it writes the string to a temp file and then uses the LabVIEW Internet Toolkit’s Read XML from File functionality to read the temp file, which is then deleted.
Thank you Jim. Thats what I though was happening and exactly what I wanted to avoid.
I was just wondering which versions of Labview is this toolkit compatible with. I am creating a application were the toolkit would be a great timesaver but I am using Labview 6.1. Is this too old a version?
John: EasyXML works on LabVIEW 7.1 or greater. You can find all of the system requirements here: http://jkisoft.com/easyxml/requirements/.
I was actually searching for a way to save and read the data of LVOOP objects to a text file, that can be edited with a simple editor. Basically it is meant as a settings file to initialize my objects. I cannot easily download with VIPM with our firewall, so could you please answer my question: can this tool also handle object clusters? Or is there any other way to do it?
Hi Matthias: EasyXML does not currently support LVOOP object data. However, it might someday
Hi Jim: thank you for the prompt and straightforward answer. After more searching I finally found that LabVIEW 8.6 presumably offers flattening classes to XML-string. (zone.ni.com/reference/en-XX/help/371361E-01/lvconcepts/using_classes/). So far I am using LV8.5 which does only allow the flattening objects to string function (which is not really useful for editing outside LV).
Jim, it appears as though your EasyXML kit was released around a year ago? I saw some mention in the comments of this posting that you were toying with the idea of building a tool to convert from XML to LV Data Structures.
I am also interested in this. There is a good chance that I will use LabVIEW for an upcoming event recorder. The catch is that all events are written in a specific XML schema. There is a 200 page document, and a 200 line XSD file (https://pslcdatashop.web.cmu.edu/dtd/).
It would be nice if there was a simple tool to parse the XSD file and create a set of clusters. Then I would be much more inclined to obtain your EasyXML kit. The pain for me is that I may need to manually (read: with errors) create the data types.
Cheers,
Evan
Hi Evan, Thanks for the feedback. Yes, an XML to LabVIEW data structure converter would be great. It’s on our roadmap for a future version. Beyond that, I can’t make any promises. Cheers.
Hello Jim Kring ;
Could you please tell me where could i find the second block in Figure 4 after “xml string” block. I searched in Function Palette and i could not find any thing. I have also the the Internet Toolkit installed on my PC.
thanks
Isaac: The second block is part of the EasyXML Toolkit for LabVIEW, a commercial add-on from JKI.
Hi Jim,
in this thread, you talk about an XML to LabVIEW data structure converter.
I think this means, that the Class-Structure hasn’t to be created by hand. So changes in the XML-Structure result in changes of the Labview data structure.
Do you have a rough release date for this feature?
Silvester.
Silvester: We don’t have a release date for the XML to LabVIEW data structure converter. But, we’ve been getting a lot of requests for it and it’s definitely on our roadmap.