<report id="G5303C " version="1010" name="GF5303C不良类贷款投向行业分地区情况表" fileName="G5303C1010.xls" table="V_REPORT_DATA" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
 有若干此节点,id属性里带空格,空格可能是好多个,也可能是一个,
 如果不带空格查一个节点Xpath //report[@id='G5303C']
 有什么办法使用XPath查询的方法来解决空格的问题,因为此Xml文件不能修改,如果说使用循环来处理不用讲了,只用XPath

解决方案 »

  1.   

    http://support.microsoft.com/kb/308333
      

  2.   

    请看  http://www.w3school.com.cn/xpath/index.asp
      

  3.   

    使用正则获取
    string str = new Regex(@"(?i)<report id=""G5303C(\s*)""(.+?)/>").Match(xml).Value;
      

  4.   

    你们可能没明白我的意思,我的意思是Xml文档中的report id="G5303C "有空白,或多个空白,我传的参数没有空白,如何用Xpath来实现。
      

  5.   

    fn:normalize-space(string) 
     这个函数应该能满足我,但是语法怎么写,有知道怎么写的吗?
      

  6.   

    既然xml不能修改,那么就改能修改的,把xml文件读取出来临时存到数据库表里,在表里进行数据格式化,把空格去掉就可以了。再把参数传出去
      

  7.   

    这样行不行
    先获取report节点,然后获取Attribute id
    然后处理掉空格,跟传入的参数比较,如果一样的话,返回
      

  8.   

    我的意思和sql语句里的where trim(colum)=‘aaaa’
    这种意思
      

  9.   

    文档确实不改的啊。。只是把id取出来trim一下比较。又不保存,不会修改文档的
    并且先事先获取report节点,遍历的数据也会少很多
      

  10.   

      <reports>  
    <report id="G1401  " version="0910" name="G14授信集中情况表-第Ⅰ部分:最大十家集团客户授信情况表" fileName="G14010910.xls" table="V_REPORT_DATA" dateOfExpiFrom="2009-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="G1303  " version="0910" name="G13最大十家可疑类贷款情况表" fileName="G13030910.xls" table="V_REPORT_DATA" dateOfExpiFrom="2009-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="GF3302 " version="094 " name="GF33利率重新定价风险情况表 第二部分:银行账户" fileName="GF3302094.xls" table="V_REPORT_DATA" dateOfExpiFrom="2008-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="SF5600 " version="091 " name="SF56银行业金融机构第一类案件信息统计表" fileName="SF5600091.xls" table="V_REPORT_DATA" dateOfExpiFrom="2009-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="G5303A " version="0910" name="G5303A正常类贷款投向行业分地区情况表" fileName="G5303A0910.xls" table="V_REPORT_DATA" dateOfExpiFrom="2009-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="G5303B " version="0910" name="G5303B关注类贷款投向行业分地区情况表" fileName="G5303B0910.xls" table="V_REPORT_DATA" dateOfExpiFrom="2009-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="G5303C " version="0910" name="G5303C不良类贷款投向行业分地区情况表" fileName="G5303C0910.xls" table="V_REPORT_DATA" dateOfExpiFrom="2009-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="GF2100 " version="094 " name="GF21流动性期限缺口统计表" fileName="GF2100094.xls" table="V_REPORT_DATA" dateOfExpiFrom="2008-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
        <report id="GF2200 " version="094 " name="GF22流动性比例监测表" fileName="GF2200094.xls" table="V_REPORT_DATA" dateOfExpiFrom="2008-01-01 0:00:00" dateOfExpiTo="2009-12-31 0:00:00" coluname="Curr_Term_Value" wherecoluname="Cell_Index" appwhere="Status='1'" />
      </reports>
     <norms>
        <norm id="0200002010031601  " name="资本利润率(税前经营)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="050000" targetid="144" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031602  " name="资本利润率(税前账面)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="050000" targetid="145" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031603  " name="资产利润率(税前账面)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="050000" targetid="146" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031604  " name="资产利润率(税前经营)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="050000" targetid="147" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031605  " name="正常贷款迁徙率(半年报)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="010000" targetid="149" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031606  " name="正常贷款迁徙率(调整后)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="010000" targetid="150" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031607  " name="正常类贷款迁徙率(调整后)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="010000" targetid="151" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
        <norm id="0200002010031608  " name="关注类贷款迁徙率(调整后)" flag="1" creatorID="0" dateOfExpiFrom="2010-01-01 0:00:00" dateOfExpiTo="2020-12-31 0:00:00" desc="" ncid="010000" targetid="152" tablename="v_target_data" coluname="Curr_Term_Value" targetcoluname="Target_ID" />
      </norms>
    这些是部分
      

  11.   

    使用 normalize-spaceeg://report[normalize-space(@id)='G5303C']
      

  12.   

    我刚才写成//report[@normalize-space(id)='G5303C']
    不好用,现在好了,谢谢