以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  求助:怎么去掉CSV中的双引号!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=64916)


--  作者:JerryLia
--  发布时间:7/24/2008 5:17:00 PM

--  求助:怎么去掉CSV中的双引号!
我用XLST来输出CSV,代码是从CodeProject下的,不懂,来这里求助,好心人帮帮忙:

程序代码(看着比较乱的话,可以下载附件code.cs文件):

  private void CreateStylesheet(XmlTextWriter writer, string[] sHeaders, string[] sFileds, ExportFormat FormatType)
  {
   try
   {
    // xsl:stylesheet
    string ns = "http://www.w3.org/1999/XSL/Transform"; 
    writer.Formatting = Formatting.Indented;
    writer.WriteStartDocument( );    
    writer.WriteStartElement("xsl","stylesheet",ns);
    writer.WriteAttributeString("version","1.0");
    writer.WriteStartElement("xsl:output");
    writer.WriteAttributeString("method","text");
    writer.WriteAttributeString("version","4.0");
    writer.WriteEndElement( );
    
    // xsl-template
    writer.WriteStartElement("xsl:template");
    writer.WriteAttributeString("match","/");

    // xsl:value-of for headers
    for(int i=0; i< sHeaders.Length; i++)
    {
                    writer.WriteString("\"");
                    //writer.WriteString("\r\n"); 
     writer.WriteStartElement("xsl:value-of");
     writer.WriteAttributeString("select", "'" + sHeaders[i] + "'");
                    //writer.WriteAttributeString("select", "'" + sHeaders[i] + "'");
     writer.WriteEndElement( ); // xsl:value-of
                    writer.WriteString("\"");
                    
     if (i != sFileds.Length - 1) writer.WriteString( (FormatType == ExportFormat.CSV ) ? "," : " " );
    }
    // xsl:for-each
    writer.WriteStartElement("xsl:for-each");
    writer.WriteAttributeString("select","Export/Values");
    writer.WriteString("\r\n");    
    
    // xsl:value-of for data fields
    for(int i=0; i< sFileds.Length; i++)
    {
                    writer.WriteString("\"");
                    //writer.WriteString("\r\n"); 
     writer.WriteStartElement("xsl:value-of");
     writer.WriteAttributeString("select", sFileds[i]);
     writer.WriteEndElement( ); // xsl:value-of
                    writer.WriteString("\"");
                    
     if (i != sFileds.Length - 1) writer.WriteString( (FormatType == ExportFormat.CSV ) ? "," : " " );
    }
    writer.WriteEndElement( ); // xsl:for-each
    writer.WriteEndElement( ); // xsl-template
    writer.WriteEndElement( ); // xsl:stylesheet
    writer.WriteEndDocument( );     
   }
   catch(Exception Ex)
   {
    throw Ex;
   }
  }


应用该XLST后,效果如下:
"序号","特征名称"
关键是我不希望有“”的存在,要是
序号,特征名称
就好了!
针对这个XLST咋改,好心人给个答复!


--  作者:Qr
--  发布时间:7/24/2008 5:33:00 PM

--  
代码不是很明确
注释writer.WriteString("\"");看看

--  作者:JerryLia
--  发布时间:7/24/2008 5:41:00 PM

--  
我注掉后,输出结果不再换行了,双引号倒是没有了。真是郁闷!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
843.750ms