🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.xml
Article #231

���� Zoho Reports �� XML ̽���Ʒ���(ת��)

#231
From: <Test/>
Date: Wed, 26 May 2010 14:42
454 lines
25848 bytes
Ryan Knight, �߼������ƹ���, ����ְҵ��
��飺 �Ʒ������?����Ա��Ӵ�ͳҵ�����ܽ�������ĺܶ����ԣ������κο���
̽�����ʹ�� Zoho Reports��Zoho API �� XML �������Ʒ������������Ӷ�����
��Ӧ�ó��򣨲��������еģ����DZ��صģ���ӷ������ܡ�

�Ʒ����ṩһ��ҵ������ (BI) �������棬���谲װ��ά����ͳ��������ʱ����Ŀ�
��ͳɱ�������Ҳ�ܱ���㷺����������ʣ���Ϊ������ά�����Dz���Ҫר�ż��ܡ���
��ͳ�ı������治ͬ�������Ʒ�������ݿ���פ���ڱ�����������ĺܶ�λ���С�
�������
API��Ӧ�ó����̽ӿ�
HTML�����ı��������
HTTP�����ı�����Э��
JDOM��Java �ĵ�����ģ��
PDF����Яʽ�ĵ���ʽ
RSS�����������
SQL���ṹ����ѯ����
XML������չ�������
URI��ͳһ��Դ��ʶ��
URL��ͳһ��Դ��λ��
��ô���Ʒ�������Ҫ��ս����Ҫ��֤����ܹ���Ч�ش��䵽���������С��ܶ��Ʒ���ƽ
̨����ӵ��ӱ��򶺺ŷָ�ֵ (CSV) �ļ�������ݡ�����Ҳͨ�� Web �����ṩһ
����̽ӿڡ�
Zoho&#174; Reports��һ��ʾ��Ӧ�ó�����ͳ��Ӧ�ó������Ʒ�����м��ɣ�����
�����ṩ�������μ� �ο����ϣ��������е�����չʾ�˴�ͳӦ�ó�����ν� Zoho 
Reports ������ݴ洢�ͼ����Լ�����Ŀ�ģ������Խ������ͼ��Ƕ���� Web ҳ��
�С�
Zoho Reports �ṩһ��������ݿ⣨���ڴ洢��ݣ���һ�� REST-ful API����
��������ݵĽ�������REST-���ļܹ�������Ľ����������Ϊ������ͨ�� HTTP 
���м򵥵���Ϣ���ݡ����ü򵥵� HTTP ��Ϣ��������������ͨ�ţ����������Է�
�� XML ��ʽ����ݡ�
�˽� Zoho Reports
Zoho Reports ��һ�����߱��湤�ߣ���Ϊҵ������ṩһ�������Ľ�����������
����Ϥ����ݿⷽʽ�洢����֯Ϊ�����ʽ�����ڶ�����ݽṹ�Ľӿ��ǵ��ӱ������
�ݿ�Ļ�ϡ���Ҳ����ͨ�����ص��ļ��ṹ�����Ľṹ��
�����úܶ෽ʽ��������� Zoho Reports �У������������� CSV��Microsoft&#174; 
Office Excel&#174; (XLS) �� HTML �ȸ�ʽ���أ��ڵ��ӱ��֮��Ľ������ֹ���
�룻����ͨ��ʹ�� Reports API ���롣���ڱ��湦�ܣ�Zoho Reports �ṩ����
��ͳ����Ӧ�ó����п����ҵ�����Щ��� �� ͼ�?͸��ͼ�����ݱ����ͼ��������
ͨ���ϷŽ��������ݵĿ��ӷ�����Ҳ����ʹ����Ϥ�� SQL ��ݿ����Բ�ѯ��ݡ�
�� Zoho Reports �ж��屨��֮�󣬿��Խ�����Ƕ���� Internet �ϵ��κεط���
���粩�͡�����Ӧ�ó�������� Web վ�㡣����Ϳ��������ڲ�ͬ��λ��ʹ����
ͬ�ı��档
��ҳ��
ʹ�� Zoho API
Zoho API Ϊͨ�� HTTP ����ݿ��е���ݽ����ṩһ�� REST-���Ľӿڡ��� 
API �ĵ��ð�����ݿ����Ҫʹ�õı?�� API �Ĺ��ܰ�����
��ӻ��޸���ݡ�
ʹ�� CSV �ļ�������ӻ������ݡ�
����ָ���������������»�ɾ����ݡ�
������ PDF��HTML��CSV��JavaScript Object Notation (JSON) ��ͼ��֮��
�ĸ�ʽ������ݺͱ��档
ʹ�� SQL SELECT ��ѯ����ݿ�ȡ����ݡ�
Ҫʹ�ø� API���������ȴ� http://writer.zoho.com/apikey.htm ����һ����
Կ������ API ���ö�Ҫ���ݴ���Կ��
ÿ�� Zoho Reports ����ĵڶ�����Ҫ������ ticket �����Ʊ�ݣ�ticket��
�������״ε�¼ʱ��ɵġ����Ʊ��Ȼ���������к��� API ���á�
�����ʽʹ��һ�� HTTP POST �����ʽ�����ڲ�����ָ��Ҫ��ȡ�Ķ������Լ� API 
��Կ��Ʊ�ݡ�API �汾�������ʽ�������������������д��ݡ�Zoho wiki ������
���ʽ����ϸ��Ϣ���μ� �ο����ϣ���
������ָ������Ӧ��ʽ������ XML �� JSON��XML ��ʽָ��һ�� <response> ��
�ǣ�����Ƕ����һ�� <result> ��ǡ�<response> ���ָ�����õ� URI �Ͳ�ȡ
������

<?xml version="1.0" encoding="UTF-8" ?> 
<response uri="/api/loginname/databasename/tablename" 
action="speci&#64257;edaction">
<result> 
<!-- The specific XML response based on the action goes here --
>
</result> 
</response> 

Ϊ�˴ٽ��� Zoho API �Ľ�����Zoho Reports �ṩһ���� Java&#8482; ���Ժ� 
Python ���Ա�д�Ŀͻ��˿⣻���⣬Google App Engine �ͻ��˱���Ϊ Python 
���һ����չ�ṩ�������е�����ʹ�� Java ���Կ⣬�ÿ�Ϊ�� Zoho Reports ��
�����ṩһ���൱�򵥵Ľӿڡ�
ʹ�õ������� ReportClient�������� Zoho Reports ���������ͻ��ˡ���ʼ��
��¼���ͻ��ˣ�Ȼ���ý������������������ URI��

             ReportClient reportClient = 
ZohoConfig.getReportClient();
        reportClient.login(ZohoConfig.LOGINNAME, 
ZohoConfig.PASSWORD);

        String uri = reportClient.getURI(ZohoConfig.LOGINNAME,
            ZohoConfig.DATABASENAME, "WordFrequency");

�˴����¼�� ZohoConfig ��ָ������ݿ⣬�� BlogAnalyzer��Ȼ��ָ���˽�Ҫ
ʹ�õı� �� �������� WordFrequency��
�����걨��ͻ���֮��ʹ�����µ����˳��ͻ��ˣ�

reportClient.logout();

��ҳ��
���� Zoho Reports ���� RSS ��Ҫ
��Ϊһ���򵥵����ӣ������������ܶ� RSS ��Ҫ���ҳ�ÿ�����ʳ��ֵ�Ƶ�ʡ����� 
RSS ��ʹ�� XML ָ���ģ����Ժ������� Java �����ж�ȡ�ͽ��� RSS��ʾ��Ӧ�ó�
��ʹ�� Rome���μ� �ο����ϣ���һ�����ڽ�������ɺͷ��� RSS ��Ҫ�� Java 
�⡣Rome ʹ�� JDOM XML ��������֧����Ҫ�������Լ�����ת����ͬ��ʽ����Ҫ��
���� Rome ��ȡ RSS ��Ҫ��Ϊ�򵥡����Ҫ��ȡ�� RSS ��Ҫ�� URL������һ�� 
XMLReader��Ȼ���ȡ��Ҫ��

        URL feedUrl = new URL(url);
        XmlReader xmlReader = new XmlReader(feedUrl);
        SyndFeedInput input = new SyndFeedInput();
        SyndFeed feed = input.build(xmlReader);

�ô��뽫һϵ����Ŀ�洢�� feed �����С�Ȼ������Ե��ͨ����Щ��Ŀ������Ŀ��
������һϵ�е��ʣ��� �嵥 1 ��ʾ��

�嵥 1. ���ͨ�������Ŀ
                

        List entriesList = feed.getEntries();
        for (Object obj : entriesList) {
            SyndEntryImpl syndEntry = (SyndEntryImpl) obj;
            String title = syndEntry.getTitle();
            parseWordsFromString(title);
            SyndContent description = 
syndEntry.getDescription();
            parseWordsFromString(description.getValue());
        }

parseWordsFromString() �������µ���ӳ�䣬����ͳ����ÿ�����ʵ�Ƶ�ʡ�����
��ȡ�õ�ÿ����Ҫ��������Ŀ֮��ѭ��ͨ����Կ�����鿴ÿ�����ʵ�Ƶ�ʡ����磬��
�� and ������ 1015 ��Apple ���� 45 ��Adobe ��������
���ַ��������
�嵥 2 ����ʾ���ڴ��ַ�������ʵķ����Ǵ� Java2s Web վ���ϵ���ͬ������
�Ķ����ģ��μ� �ο����ϣ���

�嵥 2. ���ַ��������
                

 public void parseWordsFromString(String nxtString) throws 
CharacterCodingException {

        // Create line pattern
        Pattern linePattern = Pattern.compile(".*$", 
Pattern.MULTILINE);

        // Create word pattern
        Pattern wordBreakPattern = 
Pattern.compile("[\\p{Punct}\\s}]");

        // Match line pattern to buffer
        Matcher lineMatcher = linePattern.matcher(nxtString);


        Integer ONE = new Integer(1);

        // For each line
        while (lineMatcher.find()) {
            // Get line
            CharSequence line = lineMatcher.group();

            // Get array of words on line
            String words[] = wordBreakPattern.split(line);

            // For each word
            for (int i = 0, n = words.length; i < n; i++) {
                String nxtWord = words[i].trim();
                if (nxtWord.matches("[a-zA-Z]{2,}?")) {
                    nxtWord = nxtWord.toLowerCase();
                    Integer frequency = (Integer) 
map.get(nxtWord);
                    if (frequency == null) {
                        frequency = ONE;
                    } else {
                        int value = frequency.intValue();
                        frequency = new Integer(value + 1);
                    }
                    map.put(nxtWord, frequency);
                }
            }
        }

    }

Java2s ���� parseWordsFromString ʹ�� Java ������ʽ�������ַ���
�ȣ���һ��������ʽģʽ���ڲ��Ҿ���ĩβ����Ϊÿ�����ʴ���һ�� ONE ��
��������ͳ�Ƶ��ʵij���Ƶ�ʡ�Ȼ��ѭ��ͨ��ÿ�����ӣ������ڵ��ʷָ�ģʽ�����ӷ�
��ɵ��ʡ�����ÿ���������ַ�ĵ��ʣ���ͳ����洢��Ƶ��ӳ���С�
�������� RSS ��Ҫ��ÿ�����ʵ�Ƶ�ʣ��Ϳ��Խ���������ص� Zoho Reports ����
�����ˡ�Ϊ�ˣ�����һ���� �嵥 3 ����ʾ��ɢ��ӳ�䣬���а�����Ҫ�洢�ڱ��е�
����ݡ�

�嵥 3. ����һ������Ҫ����������ݵ�ɢ��ӳ��
                

        SimpleDateFormat dtFmt = new 
SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Set wordSet = map.keySet();
        for (Object objs : wordSet) {
            String nxtWord = (String) objs;
            Integer frequency = (Integer) map.get(nxtWord);

            HashMap rowValsMap = new HashMap();
            rowValsMap.put("Date", dtFmt.format(new Date()));
            rowValsMap.put("Word", nxtWord);
            rowValsMap.put("Frequency", frequency);
            Map result = reportClient.addRow(uri, rowValsMap, 
null);;
        }

ѭ���е����һ�����ã����ñ���ͻ��ˣ�����������ֵ��ӵ����С���¼�� Zoho 
Reports �鿴 WordFrequency ���е���ݣ��� ͼ 1 ��ʾ�����鿴 ��ͼ����

ͼ 1. Zoho Reports �е� WordFrequency ��
 
Ϊ���øñ��������ã�Ӧ�ý�һ�����������б?����˵�����˵����� http �� com 
֮��ij���ʡ�
��ҳ��
�Ż����ع��
ǰһ������ÿ������һ����� �� ��Ȼ������ѵķ����������������Ҫ���϶��ʱ��
������ݡ���õķ�����ʹ������������һ���������е���ݡ�Ŀǰ��Zoho API ֻ��
��ѡ�������� CSV �ļ���
CSV �ļ��ĸ�ʽ�ܼ򵥣���һ�а��б����б?������а���ݡ����� CSV �ļ�
ʱ��������� POST ����ָ�����ӵ����ز�������ܶ�����������ݵ�ѡ�����
�����±?׷�ӵ����еı?���߸��±��е�����ֵ������ѡ�����ϸ��Ϣ�� Zoho 
wiki �У��μ� �ο����ϣ���
Ҫ�Ż� RSS ���ʷ������򣬿ɸ�����ع����ʹ�� Zoho API import ����������
��ݵ��÷���һ�� XML �ĵ�����ϸ��¼�����صĽ�� �� ���ص����������������
��Ϣ����Ҳ����һ����������б?����˵һ��ֵ��������ijһ�в���
Ҫʹ�� import ��������������ʹ�� opencsv���μ� �ο����ϣ�����ݼ�ת���� 
CSV �ļ���Ҫ����ļ�����ѭ��ͨ���ӳ���е�ֵ����ÿ��ֵд���ļ��е�һ�У���
�� �嵥 4����

�嵥 4. ���� CSV �ļ���������
                

        Calendar today = GregorianCalendar.getInstance();
                SimpleDateFormat formatter = new 
SimpleDateFormat("dd.MM.yy.H.mm.ss");
        String dateStr = formatter.format(today.getTime());
        String csvFileName = "benchmark-results" + dateStr + 
".csv";
        CSVWriter writer = new CSVWriter(new 
FileWriter(csvFileName));
        String[] columns = new 
String[]{"Date","Word","Frequency"};
        writer.writeNext(columns);

        SimpleDateFormat dtFmt = new 
SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String crntDateStr = dtFmt.format(new Date());
        Set wordSet = map.keySet();

        for (Object objs : wordSet) {
            String nxtWord = (String) objs;
            Integer frequency = (Integer) map.get(nxtWord);
            String[] values = new String[]{crntDateStr, nxtWord, 
frequency.toString()};
            writer.writeNext(values);
        }

        writer.close();


���� CSV �ļ�֮��ֻҪ�� ReportClient �Ͻ��ļ�����Ϊ����ݸ� 
importData() �������ɡ��÷����������ص� XML �ĵ��������õ������ϸ�����
�� ImportResult �࣬�� �嵥 5 ��ʾ��

�嵥 5. �Ż� RSS ���ʷ�����������
                

ReportClient reportClient = ZohoConfig.getReportClient();
        System.out.println(" Logging into the server");
        reportClient.login(ZohoConfig.LOGINNAME, 
ZohoConfig.PASSWORD);
        System.out.println(" Successfully logged in.");

        String uri = reportClient.getURI(ZohoConfig.LOGINNAME, 
                ZohoConfig.DATABASENAME, "WordFrequency");
        System.out.println("uri = " + uri);

        ImportResult importResult = 
                reportClient.importData(uri,"APPEND",new 
                        File(csvFileName),getImportConfig(), 
false);
        System.out.println("imported " + 
importResult.getTotalRowCount() + 
                " rows");

        reportClient.logout();

��ĵ�������ʹ���������صij�Ч������� 6000 ����ݵ����ع�̣�ʱ��Ӽ�
�������̵������ӡ�
��ҳ��
�� Zoho Reports ���� XML
����ʹ�����ַ���֮һ�� Zoho Reports ������ݵ� XML��CSV ��ͼ���ʽ���ļ�
�С���һ�ַ��������ÿ�ѡ�ı�׼������ָ��ֱ�ӵ������ڶ��ַ�����ʹ��ij�������� 
SQL SELECT ��������
ֱ�ӵ����� URI ��ָ�������ı?�������ֱ�ӱ��浽�ļ�����������嵥 6 �ṩ
һ�����ӣ�ʹ����������ֱ�ӵ����� XML �ļ������ڱ�����˵����ֻ�뿴��ͳ��Ƶ��
���� 400 �ĵ��ʡ�

�嵥 6. �� Zoho Reports ������ XML �ļ�
                

        String exportUri = 
reportClient.getURI(ZohoConfig.LOGINNAME, 
                ZohoConfig.DATABASENAME, "WordFrequency");
        File topXmlFile = new File("topFrequencyWords.xml");
        String xmlCriteria = "(\"Frequency\" > 400)";
        reportClient.exportData(exportUri, "XML", 
                topXmlFile, xmlCriteria, null);

�ڱ����У���ָ���Լ�ֻ��Ҫ����Ƶ��ֵ���� 400 ����ݡ����ֱ�ӱ��浽 
topFrequencyWords.xml �ļ����嵥 7 �ṩ�˴� XML �ļ���һ��Ƭ�Ρ�

�嵥 7. ժ�� topFrequencyWords.xml
                

<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/api/flexanvil/BlogAnalyzer/WordFrequency" 
action="EXPORT">
<criteria>("Frequency" > 400)</criteria>
<result>
<rows>
<row>
<column name="Word">http</column>
<column name="Frequency">2687</column>
<column name="Date">19 May, 2009 16:43:26</column>
</row>
<row>
<column name="Word">com</column>
<column name="Frequency">2587</column>
<column name="Date">19 May, 2009 16:39:05</column>
</row>

�ڵڶ��������У�ʹ�� SQL ��ָ����Ҫ��������ݡ����ڱ�����˵��ʹ��һЩ��� 
SQL ������������ݡ������Ҫ����Ƶ��ֵ��ƽ��ֵ��ͳ�������ֵ�ͱ�׼ֵ������
ʹ�������� �嵥 8 �еĴ��롣

�嵥 8. ��� Zoho Reports ���� SQL ��ѯ
                

     String sqlUri = reportClient.getURI(ZohoConfig.LOGINNAME, 
             ZohoConfig.DATABASENAME);
        System.out.println("sqlUri = " + sqlUri);
        String sql = "SELECT avg(\"Frequency\") as Average, 
                count(\"Frequency\") as Count, 
max(\"Frequency\") as Maximum, " +
                "std(\"Frequency\") as Standard  FROM 
\"WordFrequency\"";
        File xmlFile = new File("frequencyData.xml");
        reportClient.exportDataUsingSQL(sqlUri, "XML", xmlFile, 
sql, null);

����ָ�� SQL �ַ������ڵ�����ݡ�SQL ���������ݿ�ִ�У����洢�� XML 
�ļ� frequencyData.xml �У��� �嵥 9 ��ʾ��

�嵥 9. ժ�� frequencyData.xml
                

<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/api/flexanvil/BlogAnalyzer" action="EXPORT">
<result>
<rows>
<row>
<column name="Average">11.796</column>
<column name="Count">5834</column>
<column name="Maximum">2687</column>
<column name="Standard">78.0844</column>
</row>
</rows>
</result>
</response>

������ݵ� SQL �����ؼ��������ڣ�URI û��ָ��ʹ���ĸ��?������ SQL ����
��϶�������ݡ����磬�������һ�������ı?�����г�����Ҫ׷�ٵĹ�˾��Ȼ��
�����ʹ��һ�� SQL inner join ������õ��б���ÿ����˾���ᵽ��Ƶ�ʣ��� ��
�� 10 ��ʾ��

�嵥 10. ��� Zoho Reports ���еĸ��� SQL ��ѯ������
                
        String companySql = "SELECT wf.Frequency, wf.Word, 
cm.Name 
                From WordFrequency wf inner join Companies cm on 
                wf.word = cm.name";
        File companyXmlFile = new File("companyFrequency.xml");
        reportClient.exportDataUsingSQL(sqlUri, "XML", 
                companyXmlFile, companySql, null);

����ʹ�� SELECT ��ѯ�������� WordFrequency �� Companies ֮��� 
inner join�����е����빫˾��ƥ�䡣�嵥 11 չʾ�����иò�ѯ����� XML ��
����

�嵥 11. SQL SELECT ��ѯ��������
                

<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/api/flexanvil/BlogAnalyzer" action="EXPORT">
<result>
<rows>
<row>
<column name="wf.Frequency">52</column>
<column name="wf.Word">apple</column>
<column name="cm.Name">Apple</column>
</row>
<row>
<column name="wf.Frequency">3</column>
<column name="wf.Word">sun</column>
<column name="cm.Name">Sun</column>
</row>
<row>
<column name="wf.Frequency">17</column>
<column name="wf.Word">intel</column>
<column name="cm.Name">Intel</column>
</row>
<row>
<column name="wf.Frequency">80</column>
<column name="wf.Word">microsoft</column>
<column name="cm.Name">Microsoft</column>
</row>
</rows>
</result>
</response>

����������Щ���Ӷ����� XML����������Ժ����׽�������ɻ�Ӧ�ó����С����磬��
������ Java Ӧ�ó����н����� XML���Ա���ʾ��Ӧ�ó����С�
��ҳ��
�����͵���ͼ��
Zoho Reports �Ķ�������֮һ�ǿ��ӷ�������visual analyzer�������ӷ�����
��������ٴ�����ݵ�ͼ�?ͼ�κ������档��Ϊһ�����ӣ���������Ҫ����һ
��ͼ�Σ���ʾ����Ƶ����ߵ�һЩ���ʡ�ͼ 2 չʾ�����ڴ���������ͼ�Ŀ������
����visual designer�������鿴 ��ͼ����

ͼ 2. Zoho Reports ���ӷ������е�����ͼ
 
������ͼ֮��ͨ����� exportData() ������Ϊ���ָ��һ��ͼ���ʽ����������
�°��ͼ��
        String imgURI = 
reportClient.getURI(ZohoConfig.LOGINNAME,
                ZohoConfig.DATABASENAME,"FrequencyChart");
        File imgFile = new File("FrequencyChart.png");
        
reportClient.exportData(imgURI,"IMAGE",imgFile,null,null);

exportData() ������ͼ�α���Ϊ PNG �ļ���Ȼ�������ʹ�ø� PNG �ļ�����Ӧ
�ó�������ʾͼ�Ρ�
��ҳ��
������
���� Zoho Reports �ṩ�� REST-ful �� Web ���񣬿�����ͳӦ�ó��������
��������������������͵�����ݡ����� XML �����Լ�����Ԥ�����ͼ�Ρ�������
�谲װ�����������ٷ�����ݺͲ�����������������Խ�����ʱ�����ڽ��п�
�����Ʒ���ҲΪ��������ṩ������ݺ�ִ�п��ӷ��������� �� Ҳ�����Ʒ��������
�ŵ㡣�������ݲ���ǿ����Ʒ����ɡ�

--
Happy XMLing


�� ��Դ:��ˮľ���� http://newsmth.net��[FROM: 114.249.215.*]
Technical Details
Message-ID: <507dN4$DHq@newsmth.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!193.201.147.93.MISMATCH!xlned.com!feeder7.xlned.com!news2.euro.net!feeds.phibee-telecom.net!news.byr.edu.cn!news.newsmth.net!NEWSMTH

Show Full Headers
Complete Article Headers
X-Google-Thread: 115571,d918f9edf0fcfb66,start
X-Google-NewGroupId: yes
X-Google-Attributes: gidf7ebf7e2af,domainid0,public,usenet
X-Google-Language: Chinese,GB
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!193.201.147.93.MISMATCH!xlned.com!feeder7.xlned.com!news2.euro.net!feeds.phibee-telecom.net!news.byr.edu.cn!news.newsmth.net!NEWSMTH
From: thinkhy@newsmth.net-SPAM.no (<Test/>)
Newsgroups: cn.bbs.comp.xml
Subject: ���� Zoho Reports �� XML ̽���Ʒ���(ת��)
Date: 26 May 2010 14:42:29 GMT
Organization: ˮľ����
Message-ID: <507dN4$DHq@newsmth.net>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: XML/c/M.1274884948.30