I went ahead and plunked down $30 for OmniOutliner for iOS. It's a crazy expensive app for an iPhone, but after digging around in some forums it appears to me that it is probably the only iOS app that respects data integrity in OPML files. If, for example, I have an OPML file with type and url attributes, OmniOutliner will import them and export them. An iOS app like Carbonfin Outliner will destroy any attributes that it does not support, so _note is safe but url isn't.
Here is some basic OPML. The first node is linked to an URL. The second node includes HTML within the text that links to an URL.
<?xml version="1.0" encoding="utf-8"?>
<outline text="Google" url="http://google.com" type="link"/>
<outline text="It is a <a href=http://google.com">link</a>"/>
This is what it looks like in one of Dave Winer's outliner products:
This is what it looks like in OmniOutliner:
That suits me perfectly. No, OO doesn't render the outline the way I'd like it to, but all the data is there, and I feel confident that if I were to add a new node with an URL and type=link, that node would render correctly in one of Dave's products.
OO works directly on files in iCloud Drive. However, I am partial to Dropbox. Working with Dropbox files is a bit more cumbersome. I cannot open a Dropbox file from with OO, so I have to select an OPML file in my Dropbox app, and use the Open In... to select Copy to OmniOutliner. Then to save, I need to export to OPML and then save to the appropriate directory in Dropbox.