2012-04-20 39 views
1

我的源文件是:結果返回錯了XPath的計算值,構建

<?xml version="1.0" encoding="UTF-8"?> 
    <toc> 
     <tit>Table des matières</tit> 
     <lev1 id="lev1-1"> 
      <disp>display contents for «@id='lev1-1'».</disp> 
     </lev1> 
     <lev1 id="lev1-2"> 
      <disp>display contents for «@id='lev1-2'».</disp> 
      <lev3 id="lev3-1"> 
       <disp>display contents for «@id='lev3-1'».</disp> 
       <lev4 id="lev4-1"> 
        <disp>display contents for «@id='lev4-1'».</disp> 
       </lev4> 
      </lev3> 
      <lev3 id="lev3-2"> 
       <disp>display contents for «@id='lev3-2'».</disp> 
      </lev3> 
      <lev3 id="lev3-3"> 
       <disp>display contents for «@id='lev3-3'».</disp> 
      </lev3> 
      <lev3 id="lev3-4"> 
       <disp>display contents for «@id='lev3-4'».</disp> 
      </lev3> 
      <lev3 id="lev3-5"> 
       <disp>display contents for «@id='lev3-5'».</disp> 
      </lev3> 
     </lev1> 
     <lev1 id="lev1-3"> 
      <disp>display contents for «@id='lev1-3'».</disp> 
      <lev2 id="lev2-1"> 
       <disp>display contents for «@id='lev2-1'».</disp> 
       <lev4 id="lev4-2"> 
        <disp>display contents for «@id='lev4-2'».</disp> 
       </lev4> 
       <lev4 id="lev4-3"> 
        <disp>display contents for «@id='lev4-3'».</disp> 
       </lev4> 
       <lev4 id="lev4-4"> 
        <disp>display contents for «@id='lev4-4'».</disp> 
       </lev4> 
       <lev3 id="lev3-6"> 
        <disp>display contents for «@id='lev3-6'».</disp> 
        <lev4 id="lev4-5"> 
         <disp>display contents for «@id='lev4-5'».</disp> 
        </lev4> 
        <lev4 id="lev4-6"> 
         <disp>display contents for «@id='lev4-6'».</disp> 
        </lev4> 
        <lev4 id="lev4-7"> 
         <disp>display contents for «@id='lev4-7'».</disp> 
        </lev4> 
        <lev4 id="lev4-8"> 
         <disp>display contents for «@id='lev4-8'».</disp> 
        </lev4> 
        <lev4 id="lev4-9"> 
         <disp>display contents for «@id='lev4-9'».</disp> 
        </lev4> 
        <lev4 id="lev4-10"> 
         <disp>display contents for «@id='lev4-10'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-7"> 
        <disp>display contents for «@id='lev3-7'».</disp> 
       </lev3> 
       <lev3 id="lev3-8"> 
        <disp>display contents for «@id='lev3-8'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-2"> 
       <disp>display contents for «@id='lev2-2'».</disp> 
       <lev3 id="lev3-9"> 
        <disp>display contents for «@id='lev3-9'».</disp> 
        <lev4 id="lev4-11"> 
         <disp>display contents for «@id='lev4-11'».</disp> 
        </lev4> 
        <lev4 id="lev4-12"> 
         <disp>display contents for «@id='lev4-12'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-10"> 
        <disp>display contents for «@id='lev3-10'».</disp> 
        <lev4 id="lev4-13"> 
         <disp>display contents for «@id='lev4-13'».</disp> 
        </lev4> 
        <lev4 id="lev4-14"> 
         <disp>display contents for «@id='lev4-14'».</disp> 
        </lev4> 
        <lev4 id="lev4-15"> 
         <disp>display contents for «@id='lev4-15'».</disp> 
        </lev4> 
        <lev4 id="lev4-16"> 
         <disp>display contents for «@id='lev4-16'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-11"> 
        <disp>display contents for «@id='lev3-11'».</disp> 
        <lev4 id="lev4-17"> 
         <disp>display contents for «@id='lev4-17'».</disp> 
        </lev4> 
        <lev4 id="lev4-18"> 
         <disp>display contents for «@id='lev4-18'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-12"> 
        <disp>display contents for «@id='lev3-12'».</disp> 
        <lev4 id="lev4-19"> 
         <disp>display contents for «@id='lev4-19'».</disp> 
        </lev4> 
        <lev4 id="lev4-20"> 
         <disp>display contents for «@id='lev4-20'».</disp> 
        </lev4> 
        <lev4 id="lev4-21"> 
         <disp>display contents for «@id='lev4-21'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-13"> 
        <disp>display contents for «@id='lev3-13'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-3"> 
       <disp>display contents for «@id='lev2-3'».</disp> 
       <lev3 id="lev3-14"> 
        <disp>display contents for «@id='lev3-14'».</disp> 
        <lev4 id="lev4-22"> 
         <disp>display contents for «@id='lev4-22'».</disp> 
        </lev4> 
        <lev4 id="lev4-23"> 
         <disp>display contents for «@id='lev4-23'».</disp> 
        </lev4> 
        <lev4 id="lev4-24"> 
         <disp>display contents for «@id='lev4-24'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-15"> 
        <disp>display contents for «@id='lev3-15'».</disp> 
        <lev4 id="lev4-25"> 
         <disp>display contents for «@id='lev4-25'».</disp> 
        </lev4> 
        <lev4 id="lev4-26"> 
         <disp>display contents for «@id='lev4-26'».</disp> 
        </lev4> 
        <lev4 id="lev4-27"> 
         <disp>display contents for «@id='lev4-27'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-16"> 
        <disp>display contents for «@id='lev3-16'».</disp> 
       </lev3> 
       <lev3 id="lev3-17"> 
        <disp>display contents for «@id='lev3-17'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-4"> 
       <disp>display contents for «@id='lev2-4'».</disp> 
       <lev3 id="lev3-18"> 
        <disp>display contents for «@id='lev3-18'».</disp> 
       </lev3> 
       <lev3 id="lev3-19"> 
        <disp>display contents for «@id='lev3-19'».</disp> 
        <lev4 id="lev4-28"> 
         <disp>display contents for «@id='lev4-28'».</disp> 
        </lev4> 
        <lev4 id="lev4-29"> 
         <disp>display contents for «@id='lev4-29'».</disp> 
        </lev4> 
        <lev4 id="lev4-30"> 
         <disp>display contents for «@id='lev4-30'».</disp> 
        </lev4> 
        <lev4 id="lev4-31"> 
         <disp>display contents for «@id='lev4-31'».</disp> 
        </lev4> 
        <lev4 id="lev4-32"> 
         <disp>display contents for «@id='lev4-32'».</disp> 
        </lev4> 
        <lev4 id="lev4-33"> 
         <disp>display contents for «@id='lev4-33'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-20"> 
        <disp>display contents for «@id='lev3-20'».</disp> 
        <lev4 id="lev4-34"> 
         <disp>display contents for «@id='lev4-34'».</disp> 
        </lev4> 
        <lev4 id="lev4-35"> 
         <disp>display contents for «@id='lev4-35'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-21"> 
        <disp>display contents for «@id='lev3-21'».</disp> 
        <lev4 id="lev4-36"> 
         <disp>display contents for «@id='lev4-36'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-22"> 
        <disp>display contents for «@id='lev3-22'».</disp> 
       </lev3> 
       <lev3 id="lev3-23"> 
        <disp>display contents for «@id='lev3-23'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-5"> 
       <disp>display contents for «@id='lev2-5'».</disp> 
       <lev3 id="lev3-24"> 
        <disp>display contents for «@id='lev3-24'».</disp> 
        <lev4 id="lev4-37"> 
         <disp>display contents for «@id='lev4-37'».</disp> 
        </lev4> 
        <lev4 id="lev4-38"> 
         <disp>display contents for «@id='lev4-38'».</disp> 
        </lev4> 
        <lev4 id="lev4-39"> 
         <disp>display contents for «@id='lev4-39'».</disp> 
        </lev4> 
        <lev4 id="lev4-40"> 
         <disp>display contents for «@id='lev4-40'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-25"> 
        <disp>display contents for «@id='lev3-25'».</disp> 
        <lev4 id="lev4-41"> 
         <disp>display contents for «@id='lev4-41'».</disp> 
        </lev4> 
        <lev4 id="lev4-42"> 
         <disp>display contents for «@id='lev4-42'».</disp> 
        </lev4> 
        <lev4 id="lev4-43"> 
         <disp>display contents for «@id='lev4-43'».</disp> 
        </lev4> 
        <lev4 id="lev4-44"> 
         <disp>display contents for «@id='lev4-44'».</disp> 
        </lev4> 
        <lev4 id="lev4-45"> 
         <disp>display contents for «@id='lev4-45'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-26"> 
        <disp>display contents for «@id='lev3-26'».</disp> 
       </lev3> 
       <lev3 id="lev3-27"> 
        <disp>display contents for «@id='lev3-27'».</disp> 
       </lev3> 
      </lev2> 
     </lev1> 
     <lev1 id="lev1-4"> 
      <disp>display contents for «@id='lev1-4'».</disp> 
      <lev2 id="lev2-6"> 
       <disp>display contents for «@id='lev2-6'».</disp> 
       <lev3 id="lev3-28"> 
        <disp>display contents for «@id='lev3-28'».</disp> 
        <lev4 id="lev4-46"> 
         <disp>display contents for «@id='lev4-46'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-29"> 
        <disp>display contents for «@id='lev3-29'».</disp> 
        <lev4 id="lev4-47"> 
         <disp>display contents for «@id='lev4-47'».</disp> 
        </lev4> 
        <lev4 id="lev4-48"> 
         <disp>display contents for «@id='lev4-48'».</disp> 
        </lev4> 
        <lev4 id="lev4-49"> 
         <disp>display contents for «@id='lev4-49'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-30"> 
        <disp>display contents for «@id='lev3-30'».</disp> 
        <lev4 id="lev4-50"> 
         <disp>display contents for «@id='lev4-50'».</disp> 
        </lev4> 
        <lev4 id="lev4-51"> 
         <disp>display contents for «@id='lev4-51'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-31"> 
        <disp>display contents for «@id='lev3-31'».</disp> 
        <lev4 id="lev4-52"> 
         <disp>display contents for «@id='lev4-52'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-32"> 
        <disp>display contents for «@id='lev3-32'».</disp> 
        <lev4 id="lev4-53"> 
         <disp>display contents for «@id='lev4-53'».</disp> 
        </lev4> 
        <lev4 id="lev4-54"> 
         <disp>display contents for «@id='lev4-54'».</disp> 
        </lev4> 
        <lev4 id="lev4-55"> 
         <disp>display contents for «@id='lev4-55'».</disp> 
        </lev4> 
        <lev4 id="lev4-56"> 
         <disp>display contents for «@id='lev4-56'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-33"> 
        <disp>display contents for «@id='lev3-33'».</disp> 
       </lev3> 
       <lev3 id="lev3-34"> 
        <disp>display contents for «@id='lev3-34'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-7"> 
       <disp>display contents for «@id='lev2-7'».</disp> 
       <lev3 id="lev3-35"> 
        <disp>display contents for «@id='lev3-35'».</disp> 
        <lev4 id="lev4-57"> 
         <disp>display contents for «@id='lev4-57'».</disp> 
        </lev4> 
        <lev4 id="lev4-58"> 
         <disp>display contents for «@id='lev4-58'».</disp> 
        </lev4> 
        <lev4 id="lev4-59"> 
         <disp>display contents for «@id='lev4-59'».</disp> 
        </lev4> 
        <lev4 id="lev4-60"> 
         <disp>display contents for «@id='lev4-60'».</disp> 
        </lev4> 
        <lev4 id="lev4-61"> 
         <disp>display contents for «@id='lev4-61'».</disp> 
        </lev4> 
        <lev4 id="lev4-62"> 
         <disp>display contents for «@id='lev4-62'».</disp> 
        </lev4> 
        <lev4 id="lev4-63"> 
         <disp>display contents for «@id='lev4-63'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-36"> 
        <disp>display contents for «@id='lev3-36'».</disp> 
        <lev4 id="lev4-64"> 
         <disp>display contents for «@id='lev4-64'».</disp> 
        </lev4> 
        <lev4 id="lev4-65"> 
         <disp>display contents for «@id='lev4-65'».</disp> 
        </lev4> 
        <lev4 id="lev4-66"> 
         <disp>display contents for «@id='lev4-66'».</disp> 
        </lev4> 
        <lev4 id="lev4-67"> 
         <disp>display contents for «@id='lev4-67'».</disp> 
        </lev4> 
        <lev4 id="lev4-68"> 
         <disp>display contents for «@id='lev4-68'».</disp> 
        </lev4> 
        <lev4 id="lev4-69"> 
         <disp>display contents for «@id='lev4-69'».</disp> 
        </lev4> 
        <lev4 id="lev4-70"> 
         <disp>display contents for «@id='lev4-70'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-37"> 
        <disp>display contents for «@id='lev3-37'».</disp> 
       </lev3> 
       <lev3 id="lev3-38"> 
        <disp>display contents for «@id='lev3-38'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-8"> 
       <disp>display contents for «@id='lev2-8'».</disp> 
       <lev3 id="lev3-39"> 
        <disp>display contents for «@id='lev3-39'».</disp> 
        <lev4 id="lev4-71"> 
         <disp>display contents for «@id='lev4-71'».</disp> 
        </lev4> 
        <lev4 id="lev4-72"> 
         <disp>display contents for «@id='lev4-72'».</disp> 
        </lev4> 
        <lev4 id="lev4-73"> 
         <disp>display contents for «@id='lev4-73'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-40"> 
        <disp>display contents for «@id='lev3-40'».</disp> 
        <lev4 id="lev4-74"> 
         <disp>display contents for «@id='lev4-74'».</disp> 
        </lev4> 
        <lev4 id="lev4-75"> 
         <disp>display contents for «@id='lev4-75'».</disp> 
        </lev4> 
        <lev4 id="lev4-76"> 
         <disp>display contents for «@id='lev4-76'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-41"> 
        <disp>display contents for «@id='lev3-41'».</disp> 
       </lev3> 
       <lev3 id="lev3-42"> 
        <disp>display contents for «@id='lev3-42'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-9"> 
       <disp>display contents for «@id='lev2-9'».</disp> 
       <lev3 id="lev3-43"> 
        <disp>display contents for «@id='lev3-43'».</disp> 
        <lev4 id="lev4-77"> 
         <disp>display contents for «@id='lev4-77'».</disp> 
        </lev4> 
        <lev4 id="lev4-78"> 
         <disp>display contents for «@id='lev4-78'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-44"> 
        <disp>display contents for «@id='lev3-44'».</disp> 
       </lev3> 
       <lev3 id="lev3-45"> 
        <disp>display contents for «@id='lev3-45'».</disp> 
        <lev4 id="lev4-79"> 
         <disp>display contents for «@id='lev4-79'».</disp> 
        </lev4> 
        <lev4 id="lev4-80"> 
         <disp>display contents for «@id='lev4-80'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-46"> 
        <disp>display contents for «@id='lev3-46'».</disp> 
       </lev3> 
       <lev3 id="lev3-47"> 
        <disp>display contents for «@id='lev3-47'».</disp> 
        <lev4 id="lev4-81"> 
         <disp>display contents for «@id='lev4-81'».</disp> 
        </lev4> 
        <lev4 id="lev4-82"> 
         <disp>display contents for «@id='lev4-82'».</disp> 
        </lev4> 
        <lev4 id="lev4-83"> 
         <disp>display contents for «@id='lev4-83'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-48"> 
        <disp>display contents for «@id='lev3-48'».</disp> 
       </lev3> 
       <lev3 id="lev3-49"> 
        <disp>display contents for «@id='lev3-49'».</disp> 
       </lev3> 
      </lev2> 
      <lev2 id="lev2-10"> 
       <disp>display contents for «@id='lev2-10'».</disp> 
       <lev3 id="lev3-50"> 
        <disp>display contents for «@id='lev3-50'».</disp> 
        <lev4 id="lev4-84"> 
         <disp>display contents for «@id='lev4-84'».</disp> 
        </lev4> 
        <lev4 id="lev4-85"> 
         <disp>display contents for «@id='lev4-85'».</disp> 
        </lev4> 
        <lev4 id="lev4-86"> 
         <disp>display contents for «@id='lev4-86'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-51"> 
        <disp>display contents for «@id='lev3-51'».</disp> 
        <lev4 id="lev4-87"> 
         <disp>display contents for «@id='lev4-87'».</disp> 
        </lev4> 
        <lev4 id="lev4-88"> 
         <disp>display contents for «@id='lev4-88'».</disp> 
        </lev4> 
        <lev4 id="lev4-89"> 
         <disp>display contents for «@id='lev4-89'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-52"> 
        <disp>display contents for «@id='lev3-52'».</disp> 
        <lev4 id="lev4-90"> 
         <disp>display contents for «@id='lev4-90'».</disp> 
        </lev4> 
        <lev4 id="lev4-91"> 
         <disp>display contents for «@id='lev4-91'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-53"> 
        <disp>display contents for «@id='lev3-53'».</disp> 
        <lev4 id="lev4-92"> 
         <disp>display contents for «@id='lev4-92'».</disp> 
        </lev4> 
        <lev4 id="lev4-93"> 
         <disp>display contents for «@id='lev4-93'».</disp> 
        </lev4> 
        <lev4 id="lev4-94"> 
         <disp>display contents for «@id='lev4-94'».</disp> 
        </lev4> 
       </lev3> 
       <lev3 id="lev3-54"> 
        <disp>display contents for «@id='lev3-54'».</disp> 
       </lev3> 
       <lev3 id="lev3-55"> 
        <disp>display contents for «@id='lev3-55'».</disp> 
       </lev3> 
      </lev2> 
     </lev1> 
     <lev1 id="lev1-5"> 
      <disp>display contents for «@id='lev1-5'».</disp> 
      <lev3 id="lev3-56"> 
       <disp>display contents for «@id='lev3-56'».</disp> 
      </lev3> 
      <lev3 id="lev3-57"> 
       <disp>display contents for «@id='lev3-57'».</disp> 
      </lev3> 
      <lev3 id="lev3-58"> 
       <disp>display contents for «@id='lev3-58'».</disp> 
      </lev3> 
     </lev1> 
    </toc> 

這裏是XSL文件:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 

    <xsl:output method="xml" encoding="UTF-8" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <!-- for testing resons, nested structures removed --> 
    <xsl:template match="/"> 
     <levs> 
      <xsl:apply-templates select="//lev1|//lev2|//lev3|//lev4|//lev5"/> 
     </levs> 
    </xsl:template> 

    <xsl:template match="//lev1|//lev2|//lev3|//lev4|//lev5"> 
     <xsl:variable name="depth" select="replace(local-name(),'lev','','i')"/> 
     <xsl:variable name="position" select="count(preceding::*[matches(local-name(),'^lev\d+')]) + 1"/> 
     <lev id="{@id}" position="{$position}" depth="{$depth}" name="{local-name()}"/> 
    </xsl:template> 

    <!-- final output would be like following --> 
    <!-- 
     <xsl:output method="xml" encoding="UTF-8" indent="yes"/> 
     <xsl:param name="extref">file:/c:/somefolder/somefile.xml</xsl:param> 
     <xsl:strip-space elements="*"/> 
     <xsl:template match="/"> 
      <toc> 
       <xsl:apply-templates select="toc"/> 
      </toc> 
     </xsl:template> 

     <xsl:template match="//lev1|//lev2|//lev3|//lev4|//lev5"> 
      <xsl:variable name="depth" select="replace(local-name(.),'lev','','i')"/> 
      <xsl:variable name="position" select="count(preceding::*[matches(local-name(),'^lev\d+')]) + 1"/> 

      <lev id="{@id}" position="{$position}" depth="{$depth}"> 
       <disp><xsl:apply-templates/></disp> 
       <refdoc href="{concat($extref,'#',@id)}"/> 
      </lev> 
     </xsl:template> 
    --> 

</xsl:transform> 

和輸出:

<?xml version="1.0" encoding="UTF-8"?> 
<levs> 
    <lev id="lev1-1" position="1" depth="1" name="lev1"/> 
    <lev id="lev1-2" position="2" depth="1" name="lev1"/> 
    <lev id="lev3-1" position="2" depth="3" name="lev3"/> 
    <lev id="lev4-1" position="2" depth="4" name="lev4"/> 
    <lev id="lev3-2" position="4" depth="3" name="lev3"/> 
    <!--items removed for clarity--> 
    <lev id="lev3-58" position="166" depth="3" name="lev3"/> 
</levs> 

我的問題是計算XPath構造count(preceding::*[matches(local-name(),'^lev\d+')]) + 1產生錯誤的結果。產生的值@position不是線性的,因爲值之間的共同差異應該爲1,而生成的序列爲0,1>1

我可以簡單地通過使用«for-each»循環來解決這個問題,但我也必須保持嵌套結構。

有沒有人幫我解決我的問題?我錯過了什麼嗎?

回答

2

我覺得你只是想

<xsl:variable name="position" as="xs:integer"> 
    <xsl:number level="any" count="*[starts-with(local-name(), 'lev')]"/> 
</xsl:variable> 

這樣,你應該得到的數字1,2,3,4,5的順序,....

+0

感謝您的幫助。它完美的作品。但是,count是否有問題(前面的:: * [matches(local-name(),'^ lev \ d +')])+ 1''?你能幫我理解邏輯嗎?我的表達式是否包含錯誤或者它爲什麼沒有返回正確的值? – Cylian 2012-04-20 10:26:13

+0

據我所知,你想要統計前面和祖先的元素,這就是'xsl:number level =「any」'爲你做的。如果你不想使用'xsl:number',那麼對前面和祖先元素的聯合做一個'count'。 – 2012-04-20 10:31:02

+0

非常感謝您的建議。我得到的錯誤,並找到了解決方案:「計數(先前:: * [[匹配(本地名稱(),'^ lev \ d +')])+計數(ancestor :: * [matches(local-name() ,'^ lev \ d +')])+ 1''。但是,我仍然會使用您的解決方案,因爲它更精確。先生,再次感謝! – Cylian 2012-04-20 10:40:55