相关疑难解决方法(0)

使用命名空间进行jQuery XML解析

我是jQuery的新手,想要解析一个xml文档.

我能够使用默认名称空间解析常规XML,但使用xml,例如:

<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
   <s:Schema id="RowsetSchema">
     <s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
       <s:AttributeType name="ows_ID" rs:name="ID" rs:number="1">
        <s:datatype dt:type="i4" dt:maxLength="4" />
      </s:AttributeType>
       <s:AttributeType name="ows_DocIcon" rs:name="Type" rs:number="2">
        <s:datatype dt:type="string" dt:maxLength="512" />
      </s:AttributeType>
       <s:AttributeType name="ows_LinkTitle" rs:name="Title" rs:number="3">
        <s:datatype dt:type="string" dt:maxLength="512" />
      </s:AttributeType>
       <s:AttributeType name="ows_ServiceCategory" rs:name="Service Category" rs:number="4">
        <s:datatype dt:type="string" dt:maxLength="512" />
      </s:AttributeType>
    </s:ElementType>
  </s:Schema>
   <rs:data>
    <z:row ows_ID="2" ows_LinkTitle="Sample Data 1" />
    <z:row ows_ID="3" ows_LinkTitle="Sample Data 2" />
    <z:row ows_ID="4" ows_LinkTitle="Sample Data 3" />
  </rs:data>
</xml>
Run Code Online (Sandbox Code Playgroud)

我真正想要的只是他们<z:row>的.

到目前为止,我一直在做:

$.get(xmlPath, {}, function(xml) …
Run Code Online (Sandbox Code Playgroud)

javascript xml jquery xsd namespaces

80
推荐指数
7
解决办法
6万
查看次数

如何使用jQuery从xml中查找/提取数据

我正在尝试从下面的xml中提取StateLongName和StateShortName值.

我知道必须有一个简单优雅的方法来使用jQuery.

<NewDataSet>
  <Table>
    <StateLongName>Alabama</StateLongName>
    <StateShortName>AL</StateShortName>
  </Table>
  <Table>
    <StateLongName>Alaska</StateLongName>
    <StateShortName>AK</StateShortName>
  </Table>

...elments removed for brevity

</NewDataSet>
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的.

将xml从上面加载到Javascript变量名称xml中.

试试#1

$(xml).find("TABLE").each(function()
{
  var stateName = $(this).find("StateLongName").innerText;
  var stateCode = $(this).find("StateShortName").innerText;
});
Run Code Online (Sandbox Code Playgroud)

尝试#1找不到任何东西,永远不会进入加载stateName和stateCode变量.

试试#2

$(xml).find("StateLongName").each(function()
{
  var stateName = $(this).find("StateLongName").innerText;
  var stateCode = $(this).find("StateShortName").innerText;
});
Run Code Online (Sandbox Code Playgroud)

尝试#2找到匹配项,但是stateName和stateCode未定义.

试试#3

$(xml).find("StateLongName").each(function()
{
  var stateName = $($(xml).find('StateLongName').parent()[0].innerHTML)[1].data;
  var stateCode = $($(xml).find('StateLongName').parent()[0].innerHTML)[5].data;
});
Run Code Online (Sandbox Code Playgroud)

尝试#3工作,但必须有一个更好的方法.请赐教.

谢谢你的时间!

xml jquery

7
推荐指数
1
解决办法
3万
查看次数

标签 统计

jquery ×2

xml ×2

javascript ×1

namespaces ×1

xsd ×1