The only improvement I can suggest is to use the VI Name instead of VI Path. If you're attempting to use this on a VI that hasn't been saved yet, obviously the path will return not a path. The VI Name works because the VI is already in memory, it has to be because it is a dependency of the calling VI when you put down the static VI reference.
You could use Build Cluster Array:
That runs faster than the XNode.
My experience is that for a well-written, and fairly simple, XNode (which this seems to be), there is almost never a practical issue with using them. I've even used them on RT. Yes there may be dragons, but they usually be tamed.