使用JSTL读取XML文件

使用JSTL读取XML文件,xml,jsp,jstl,Xml,Jsp,Jstl,我有一个以下格式的xml文件,我需要阅读 ref=1111111/0000000和 ref=“2222222/0000000 使用jstl <?xml version="1.0" encoding="ISO-8859-1"?> <TestDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <Data> <ARUDD>

我有一个以下格式的xml文件,我需要阅读 ref=1111111/0000000和 ref=“2222222/0000000 使用jstl

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <TestDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
      <Data>
        <ARUDD>
          <Header reportType="REFT1019" ></Header>
          <AddresseeInformation name="c company"></AddresseeInformation>
          <ServiceLicenseInformation userName="Muhammad" userNumber="785421"></ServiceLicenseInformation>
          <Advice>
            <OriginatingAccountRecords>
              <OriginatingAccountRecord>
                <OriginatingAccount name="My Account" ></OriginatingAccount>
                <ReturnedDebitItem ref="0000000" >
                </PayerAccount>
                </ReturnedDebitItem>
                <Totals numberOf="1" valueOf="500.00" currency="GBP"></Totals>
              </OriginatingAccountRecord>
              <OriginatingAccountRecord>
                <OriginatingAccount name="Originating account " number="000000" sortCode="00-00-00"></OriginatingAccount>
                <ReturnedDebitItem ref="xxxxxxx/0000000   " transCode="17" >
                **<PayerAccount number="aaaaaaa" **ref="1111111/0000000"**>**
                </PayerAccount></ReturnedDebitItem>
                <ReturnedDebitItem ref="yyyyyyy/0000000   " transCode="01" >
                **<PayerAccount number="bbbbbbb" **ref="2222222/0000000"** >**
                </PayerAccount></ReturnedDebitItem>
                <Totals numberOf="111" valueOf="2111" currency="GBP"></Totals>
              </OriginatingAccountRecord>
            </OriginatingAccountRecords>
          </Advice>
        </ARUDD>
      </Data>
      </BACSDocument>

****
****
我用来阅读这篇文章的代码(没有任何运气)是


我有另一个文件在同一个位置,我可以读取它没有任何问题

 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <ISO_3166-1_List_en xml:lang="en">
       <ISO_3166-1_Entry>
          <ISO_3166-1_Country_name>AFGHANISTAN</ISO_3166-1_Country_name>
          <ISO_3166-1_Alpha-2_Code_element>AF</ISO_3166-1_Alpha-2_Code_element>
       </ISO_3166-1_Entry>
       <ISO_3166-1_Entry>
          <ISO_3166-1_Country_name>ÅLAND ISLANDS</ISO_3166-1_Country_name>
          <ISO_3166-1_Alpha-2_Code_element>AX</ISO_3166-1_Alpha-2_Code_element>
       </ISO_3166-1_Entry>
     </ISO_3166-1_List_en>


 <c:import var="url" url="countries.xml"/>
  <x:parse   xml="${url}"   var="doc" />  

   <x:forEach   var="n"  select="$doc/ISO_3166-1_List_en/ISO_3166-1_Entryy"> 
  <!--  select="$output/ISO_3166-1_List_en/ISO_3166-1_Entry[2]/ISO_3166-1_Country_name" -->

   <option> <x:out select="$n/ISO_3166-1_Country_name" />  </option>

 </x:forEach> 

阿富汗
空军
奥兰群岛
斧头
请问你能帮忙吗


感谢使用不同的变量和最小路径查看文件内容:

<x:set var="foo" select="$doc" /> 
<x:out select="$foo" />


看起来这与xml中的名称空间的问题类似。请尝试一个没有名称空间的文档,看看这是否有效。请看,我已更改了名称空间,但仍然没有成功。最后一行是否输入错误?应该是。在文件中,开始和结束标记相同。
<x:set var="foo" select="$doc" /> 
<x:out select="$foo" />