如何使用jquery将var转换为xml内容

时间:2013-03-18 11:17:32

标签: javascript jquery jquery-plugins xml-parsing xml-serialization

我目前正在使用Jquery,我的整个项目只需要使用sharepoint客户端对象模型(因此我无法使用服务器端编码)。我创建了一个xml结构(通过将一些字符串附加在一起)并将其存储在jquery var变量中。现在我的变量内容看起来像这样

<Collection xmlns="http://schemas.microsoft.com/collection/metadata/2009"
xmlns:ui="http://schemas.microsoft.com/livelabs/pivot/collection/2009"
SchemaVersion="1" Name="listname">
    <FacetCategories>
        <FacetCategory Name="Title" Type="String" />
        <FacetCategory Name="Created By" Type="String" />
        <FacetCategory Name="Modified By" Type="String" />
    </FacetCategories>
    <Items ImgBase="http://460d87.dzc">
        <Item Id="0" Img="#0" Name="Name1" Href="http://site/1_.000">
            <Facets>
                <Facet Name="Title">
                    <String Value="Name1" />
                </Facet>
            </Facets>
        </Item>
    </Items>
</collection>

我想将此变量纯粹基于jquery转换为xml内容。我使用了ParseXml()方法,但我无法在alert()中看到输出。请帮帮我。

2 个答案:

答案 0 :(得分:0)

只需使用本机内置XML解析器:

var parser, xml;
if (window.DOMParser) {
    parser = new DOMParser();
    xml = parser.parseFromString(str, "text/xml");
}
else { // IE
    xml = new ActiveXObject("Microsoft.XMLDOM");
    xml.async = "false";
    xml.loadXML(str);
}

var nodes = xml.getElementsByTagName('FacetCategory');

var i, l = nodes.length, items = [];
for (i = 0; i < l; i++) {
    console.log(nodes[i].getAttribute('Name'));
}

http://jsfiddle.net/QqtMa/

答案 1 :(得分:0)

您的xml无效,您的根元素为Collection,但结尾标记为collection,小c,因此解析器失败