Javascript 解析输出和样式xml数据

Javascript 解析输出和样式xml数据,javascript,jquery,xml,Javascript,Jquery,Xml,我在远程服务器上有以下格式的xml: <query_results> <row id="1"> <distance>...</distance> <post_title>...</post_title> <post_excerpt>...</post_excerpt> <ID>...</ID> &l

我在远程服务器上有以下格式的xml:

<query_results>
    <row id="1">
        <distance>...</distance>
        <post_title>...</post_title>
        <post_excerpt>...</post_excerpt>
        <ID>...</ID>
    </row
    <row id="2">
    .........................etc
</query_results>

...
...
...
...
我对你的问题提出了一个可能的解决方案。它从中加载示例XML

HTML中有一个占位符:

<div id="query_results"/>
在解析器函数中,可以使用
.find()
.children()
导航XML:

function parser(xml) {
    $(xml).find('query_results').children().each(function() {
        var row = $(this);
        var id  = row.attr("id");
        var rowContents = "";

        row.children().each(function() {
            var tag = $(this);
            var tagName = tag[0].tagName;
            rowContents += "<div class='"+tagName+"'>"+tag.text()+"</div>";
        });
        var newRow = "<div id='row"+id+"'>"+rowContents+"</div>";
        $("#query_results").append(newRow);
    }); 
}
然后,您可以使用以下选择器在CSS中设置结果样式:

#query_results div { ... }
#query_results div div { ... }
#row1 .distance { ... }
#row2 .ID { ... }

在DIV中,比如在HTML中?是的,没错。要将数据附加到div旁边的html(以便可以对其进行样式化)Ehm,这难道不是无效的html吗?我说的是将文本放在div中以进行样式化。对不起,如果不清楚的话。例如:东西

<div id="row1"> ... </div>
<div class="distance"> ... </div>
<div class="post_title"> ... </div>
<div id="query_results">
    <div id="row1">
        <div class="distance">...</div>
        <div class="post_title">...</div>
        <div class="post_excerpt">...</div>
        <div class="ID">...</div>
    </div>
    <div id="row2">...</div>
</div>
#query_results div { ... }
#query_results div div { ... }
#row1 .distance { ... }
#row2 .ID { ... }