string strxml=@"<TRANSMISSION>
  <TRANSMISSIONHEADER>
    <USERNAME>admin</USERNAME>
    <PASSWORD>40334EDAD7D033153B8A656C0E029702</PASSWORD>
    <TRANSMISSIONTYPE>I</TRANSMISSIONTYPE>
    <ORIGINSYSTEM>NTSSHA_AirFreight_Export</ORIGINSYSTEM>
  </TRANSMISSIONHEADER>
  <TRANSMISSIONBODY>
  </TRANSMISSIONBODY>
  <ELEMENT>
    <MAWBNO>607-04104995</MAWBNO>
    <OPERANO>W0807290292</OPERANO>
    <PAYWEIGHT>140.0</PAYWEIGHT>
    <CURRENCYCODE>CNY</CURRENCYCODE>
    <UNITPRICE>21.500</UNITPRICE>
    <TOTALAMT>3010.00</TOTALAMT>
    <FEECODE>ASC</FEECODE>
    <COSTDATE>2008-9-27 11:48:49</COSTDATE>
    <PROVIDERCODE>77</PROVIDERCODE>
    <SOURCECODE>CustomerTransType01</SOURCECODE>
    <DOMAINNAME>NTSSHA</DOMAINNAME>
    <OPERASTATE>SettleOperaState01</OPERASTATE>
    <REMARK>
    </REMARK>
    <SOURCESYSTEMID>188038</SOURCESYSTEMID>
    <CODEBILL>SZC</CODEBILL>
    <QUANTITY>
    </QUANTITY>
    <SOURCEGOODS>False</SOURCEGOODS>
  </ELEMENT></TRANSMISSION>"
我要剔除<TRANSMISSIONHEADER>....</TRANSMISSIONBODY>之间的内容用下面为什么不可以。调用文件时可以替换。
string objxml = Regex.Replace(strxml, "<TRANSMISSIONHEADER>.*? </TRANSMISSIONBODY>", "");

解决方案 »

  1.   

    string objxml = Regex.Replace(strxml, "<TRANSMISSIONHEADER>.*?</TRANSMISSIONBODY>", "ig");试试
      

  2.   

    string objxml = Regex.Replace(strxml, "<TRANSMISSIONHEADER>[\s\S]*?</TRANSMISSIONBODY>", "<TRANSMISSIONHEADER>TRANSMISSIONBODY>");
      

  3.   

    因为有换行符啊
    string objxml = Regex.Replace(strxml, "<TRANSMISSIONHEADER>[\\s\\S]*</TRANSMISSIONBODY>", "");
      

  4.   


    string objxml = Regex.Replace(strxml, @"<TRANSMISSIONHEADER>(\s|\S)*?</TRANSMISSIONBODY>", "ig");
      

  5.   

    你要 删除 <TRANSMISSIONHEADER>.... </TRANSMISSIONBODY> 中间的东西 两头的<TRANSMISSIONHEADER> 还保留吗?
      

  6.   

    string objxml = Regex.Replace(strxml, @"<TRANSMISSIONHEADER>[\s\S]*</TRANSMISSIONBODY>", "");  
    注意你的红色的部分不要再有空格!