What causes this inconsistency in xml parsing?
Show older comments
I have the following XML file:
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<Entry>
<Name>Friendly J. Mathworker</Name>
<PhoneNumber>(508) 647-7000</PhoneNumber>
<Address hasZip="no" type="work">3 Apple Hill Dr, Natick MA</Address>
</Entry>
<Entry>
<Name>Joe P. Surname</Name>
<PhoneNumber>(334) 647-8898</PhoneNumber>
<Address hasZip="no" type="work">123 Addr Lane, Chicago NY</Address>
</Entry>
<Entry>
<Name>Mary Sue Lastname</Name>
<PhoneNumber>(508) 552-5698</PhoneNumber>
<Address hasZip="no" type="home">456 Another Addr, Boston OR</Address>
</Entry>
</AddressBook>
Which I capture in DOM form with
dom = xmlread(file)
xmlEl = dom.getDocumentElement();
There should be 3 first-level children, correct? But when I call
xmlEl.getLength();
the answer is 7!
It gets better: I then call
xmlwrite(dom);
After which xmlEl.getLength returns 3! What is happening here? Any help would be appreciated
4 Comments
Guillaume
on 9 Jul 2018
Unfortunately, its documentation is rather sparse and doesn't really explain how the dom is parsed.
A lot of the child nodes are empty #text elements. No idea what that mean.
Nathan Jessurun
on 9 Jul 2018
Guillaume
on 9 Jul 2018
xml2struct seems to be able to handle that properly. From reading the code, it would appear that it just discards these #text empty children.
Nathan Jessurun
on 9 Jul 2018
Accepted Answer
More Answers (0)
Categories
Find more on Structured Data and XML Documents in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!