Sprawa jest dosyć dziwna, ale cóż, jak się w VBA pisze to się raz na jakiś czas odkrywa takie ciekawostki.
Mam sobie xmla z listą aplikacji, który ma mniej więcej taką strukturę:

<ApplicationList>
	<Application name="Nazwa aplikacji">
		<fileInfoList>
			<FileInfo name="plik1.dot" bytesLenght="123456"/>
                        <FileInfo name="plik2.dot" bytesLenght="32158"/>
...
...

Mam też obiekt DOMDocument40 xmlAppList, do którego jest ten xml wczytywany poprzez xml.loadXML (ret), gdzie ret to string odpowiedzi z http.
Jestem pewna, że xml jest wczytany, ponieważ pliki w nim wylistowane są pobierane przez http. Za to już po pobraniu, leci sobie takie jedno sprawdzenie, które nie ważne co robi, ważne, że też próbuje wczytać sobie listę plików:

Private Const APPS = "x:ApplicationList/x:Application"
Private Const FILES = "x:fileInfoList/x:FileInfo"

Public Function GetFilesNodes(ByVal appName As String) As IXMLDOMNodeList
    appName = unicode2utf8(appName)         'w xmlu jest w utf8
    If appName = "*" Then
        'Znaczy że uaktulaniamy wszystkie aplikacje
        Set GetFilesNodes = xmlAppList.SelectNodes(APPS + "/" + FILES + "[@bytesLength > 0]")
    Else
        Set GetFilesNodes = xmlAppList.SelectNodes(APPS + "[@name='" + appName + "']/" + FILES + "[@bytesLength > 0]")
    End If
End Function

I tutaj funkcja mnie zawodzi, ponieważ GetFilesNodes nie zawiera żadnych węzłów. Do pobierania plików została użyta dokładnie ta sama funkcja i pliki się pobrały.
Jest do tego ciekawostka - debugując odkryłam, że choć xmlAppList.xml zawiera prawidłowy xml, to w xmlAppList.Text jest pusty string...
Co się dzieje? Dlaczego nie chce mi zwrócić tych głupich węzłów, chociaż xmlAppList.xml je zawiera?
I przy okazji - co ja źle ładuje xmla, czy co? Dlaczego nie jest wypełnione pole Text?

Edit: A już sobie sama odpowiedziałam... Pomiędzy tymi dwoma wywołaniami wywołałam appendChild na tym akurat nodzie, który potrzebowałam, zamiast go sklonować najpierw.