将xml作为对象从php传递给javascript

Passing a xml from php to javascript as an object

本文关键字:javascript php xml 对象      更新时间:2024-03-04

我有一个描述网站菜单的xml:

<?xml version="1.0" encoding="UTF-8"?>
<menu>
        <item titulo="Início" tipo="conteudo" codigo="inicio" classe="btnMenu01" />
        <item titulo="O Sintran" tipo="submenu" codigo="osintran" classe="btnMenu01">
            <subitem titulo="Apresentação" tipo="pagina" codigo="apresentacao" classe="btnMenu02" />
            <subitem titulo="Editorial" tipo="lista" param="artigos,assunto,editorial" codigo="editorial" classe="btnMenu02" />
            <subitem titulo="Estatuto" tipo="arquivos" param="descricao,estatuto" codigo="estatuto" classe="btnMenu02" />
        </item>
        <item titulo="Notícias" tipo="conteudo" codigo="noticias" classe="btnMenu01" />
        etc...
    </menu>

只有两个级别,所以很简单。我通过以下行传递给JavaScript:

var SubMenus = <?php echo(json_encode($SubMenus)) ?>;

我可以通过以下方式枚举我需要的值:

for(i in SubMenus){
    console.log("Submenu "+i+"...");
    Atts = SubMenus[i]["@attributes"];
    for(j in Atts){
        console.log(" - "+j+": "+Atts[j]);
    }
}

问题是@attributes对JavaScript对象类型毫无意义,我自己发现了这个属性。所以我不确定我是否使用了正确的技术来完成任务,我可能使用了一种在事情变得复杂时会崩溃的方法。。。

你是如何完成这项任务的?或者你觉得这样可以吗?

请尝试以下操作:

Atts = SubMenus[i].attributes;
// did not work for user

UPDATE:看看这篇关于用javascript将xml转换为对象的文章,它还将展示如何访问/打印