Arvore Javascript - Objeto DOM

Pessoal,

Antes de começar, procurei muitos dias antes de criar esse tópico.

O meu problema é com javascript. Acontece que eu tenho uma estrutura de arvore com UL e LI.
Nessa estrutura eu tenho que criar evento de abrir e fechar cada nó da arvore, igual o windows explorer funciona, mas é claro que o nó folha não recebe essa ação pois não tem nada pra abrir dentro dele.
O HTML é mais ou menos assim:

Eu consegui montar essa estrutura, mas ela só funciona no IE.
E só funciona no IE porque o objeto DOM é manipulado de forma diferente em cada browser.
Ou seja, enquanto o DOM no IE interpreta que o nó folha tem um irmão/sibling (que nesse caso seria o próximo ul), o DOM do firefox interpreta que este mesmo nó tem um irmão/sibling null.

Tentei achar algo que fizesse todos os browsers interpretar o mesmo DOM, mas não consegui.
Alguém tem uma idéia do que fazer?

Desde já obrigado. Desculpem não formatar o código, mas a tag code não funciona pra html

<html>
<body>
Como não funciona?
</body>
</html>
&lt;html&gt;
&lt;body&gt;
<ul >
	<li>Câmbio</li>
	<ul>
		<li>Exportação</li>
		<ul>
			<li>Consultar&lt;input type="checkbox" id="nodes" name="nodes"
				onclick="checkItem(this)"
				value="999-Câmbio;10-Exportação;120-Consultar;true#" checked /&gt;</li>
			<li>Executar</li>
			<ul>
				<li>Conferir Contratos&lt;input type="checkbox" id="nodes"
					name="nodes" onclick="checkItem(this)"
					value="999-Câmbio;10-Exportação;888-Executar;121-Conferir Contratos;true#"
					checked /&gt;</li>
				<li>Rejeitar Assinatura&lt;input type="checkbox" id="nodes"
					name="nodes" onclick="checkItem(this)"
					value="999-Câmbio;10-Exportação;888-Executar;122-Rejeitar Assinatura;true#"
					checked /&gt;</li>
			</ul>
		</ul>
        </ul>
</ul>
&lt;/html&gt;
&lt;/body&gt;

Tem razão, eu tinha recortado somente a parte do LI e UL, sem tags html e body e não tinha funcionado.