使用JSTL读取XML文件

时间:2012-03-08 16:52:29

标签: 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>
          <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>

我正在使用的代码(没有任何运气)是

  <c:import var="url" url="data.xml"/>
            <x:parse   xml="${url}"   var="doc" />  
            <x:forEach   var="n"  select="$doc/TestDocument/Data/ARUDD/Advice/OriginatingAccountRecords/OriginatingAccountRecord/OriginatingAccount/ReturnedDebitItem"> 
          <option> <x:out select="$n/ref" />  </option>

           </x:forEach> 

我在同一个位置有另一个文件,我可以毫无问题地阅读它。

 <?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> 
你能帮忙吗?

感谢

1 个答案:

答案 0 :(得分:0)

使用其他变量和最小路径查看文件内容:

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