0

我目前正在使用 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() 中看到输出。这个你能帮我吗。

4

2 回答 2

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/

于 2013-03-18T11:27:33.863 回答
0

您的 xml 无效,您的根元素是Collection,但结束标记是collectionsmall c,因此解析器失败

于 2013-03-18T11:33:54.790 回答