Getting all children of XML node

hey,

I got some old XMLs where the single nodes are not closed with /tag:

<tag attrib=“1” />
as oppose to
<tag attrib=“2” ></tag>

now i did the little following code
_xmlData = new XML();
_xmlData = <test name=“root”>
<item name=“item1” />
<item name=“item2”><sub name=“sub1” type=“dead”/></item>
<item name=“item3” />
<item name=“item4”><sub name=“sub1”/></item>
</test>;
_xmlCurrentSelection = new XMLList();
_xmlCurrentSelection = _xmlData.descendants(“item”);
for each( var item:XML in _xmlCurrentSelection)
trace("item: "+item);

where xmlCurrentSelection is XMLList, now the output is :

item:
item: <item name=“item2”>
<sub name=“sub1” type=“dead”/>
</item>
item:
item: <item name=“item4”>
<sub name=“sub1”/>
</item>

notice that item1 and item3 are not printed out - i wonder why?
i am used to <tag /> and <tag></tag> being the same (or at least feeling very much the same).
any idea on how to reach those objects?