2015年12月28日 星期一

JQuery中的Ajax的基礎運用。提供範例程式下載

在這個號稱 web 2.0 的時代,寫網站,尤其是還用到了大量的 JavaScript,如果與使用者的互動還沒有用到 Ajax 技術的話,似乎是一件很神奇的事,至於 Ajax 是什麼東西?想瞭解的人可以到這裡去看維基百科上的解釋,這篇就專心寫一下 jQuery 中的 Ajax 部份。
程式範例:下載點
這個 PHP 程式很簡單, recive.php它只回應一個index.php傳入的字串,所以我們現在要做的事情便是:按下按鈕後,向 server 端的 index.php向recive.php 發出一個 request,然後把它回應的東西放alert出來。所以我們把 Submit 函式的部份寫成這樣:index.php
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        <script type="text/javascript" src="jquery.js" ></script>
        <script>
         var Submit=function(){
            var URLs="recive.php";
           
            $.ajax({
                url: URLs,
                data: $('#sentToBack').serialize(),
                type:"POST",
                dataType:'text',
                success: function(msg){
                    alert(msg);
                },
                 error:function(xhr, ajaxOptions, thrownError){ 
                    alert(xhr.status); 
                    alert(thrownError); 
                 
}
            });
            
        }
        </script>
    </head>
    <body>
        <form id="sentToBack">
            <input type="text" name="Text"/> 
            <input type="button"  value="送出" onClick="Submit()"/>
        </form>
    </body>
</html>

ajax當中的參數:
url:指定要進行呼叫的位址。
data:傳送至Server的資料,會自動轉為query string的型式,如果是GET請求還會幫你附加到URL。可用processData選項禁止此自動轉換。物件型式則為一Key/Value pairs。這個範例程式,是使用serialize(),會把name為sentToBack的表單中的資料傳送出去,型態的部分要看type的設定,一般表單都是用POST或是GET。
type:請求方式,POST/GET。
dataType:預期Server傳回的資料類型,如果沒指定,jQuery會根據HTTP MIME Type自動選擇以responseXML或responseText傳入你的success callback。可選的資料類型有:
                  xml:傳回可用jQuery處理的XML
                  html:傳回HTML,包含jQuery會自動幫你處理的script tags。
                  script:傳回可執行的JavaScript。(script不會被自動cache,除非cache設為true)
                  json:傳回JSON
                  jsonp:在URL加上?callback=?參數,並在Server端配合送回此jsonp callback。
                  text:傳回純文字字串。
success:請求成功時執行函式。
                
function (data, textStatus) {
                       // data 可以是 xmlDoc, jsonObj, html, text, 但還是要參考datatype 
                         
                } 
error:請求失敗時執行函式。           function (xhr, ajaxOptions, thrownError) {
                   //通常ajaxOptions或thrownError只有一個有值
           } 
           這個很重要,因為有時候Sever寫好的程式不容易測試,可以透過這個函數把錯誤顯示出來。

                  
其他可能比較會用的參數:
complete:請求完成時執行的函式(不論結果是success或error)。
                 function (XMLHttpRequest, textStatus) {
                   // the options for this ajax request 
                 }
beforeSend:發送請求之前可在此修改XMLHttpRequest物件,如添加header等,你可以在此函式中return flase取消Ajax request。
                     function (XMLHttpRequest) { 
                          // the options for this ajax request 
                     }
其他更多相關的資訊:http://api.jquery.com/jQuery.ajax/
接下來編寫PHP:recive.php
echo $_POST["Text"];

下面是index.php 會看到的畫面。
當你打下AAA送出後會看到的畫面。
再來我們在recive.php 故意寫錯程式,如果你沒有加error,會找不出問題。讓你看看有什麼差別。
ehco              //故意的,你可以測測看。
echo $_POST["Text"];

2015年12月27日 星期日

電腦概論隨手筆記

資料結構
陣列array
堆疊stack
佇列queue
連結串列linked list
樹tree
圖graph
推heap
雜湊表hash table

資料結構英語:data structure)是電腦中儲存、組織資料的方式。
一個資料結構可被視為兩個函式之間的介面 ,或者是由資料類型聯合組成的儲存內容的存取方法封裝。

資料結構可以透過程式語言 提供的data type與reference及其他操作加以實作,盡可能較少的時間與空間

正確的資料結構選擇可以提高演算法的效率 ,程式設計的困難程度與最終成果的品質與表現,取決於是否選擇了最適合的資料結構。

絕大多數的語言都帶有某種程度上的模組化思想,透過將資料結構的具體實作封裝隱藏於使用者介面之後的方法,來讓不同的應用程式能夠安全地重用這些資料結構。C++JavaPython物件導向的程式語言可使用類別來達到這個目的。

陣列array
裝固定大小和相同資料型態的容器
arraylist
是一種動態陣列,資料可從中插入或刪除

推疊stack
處理資料後進先出的排成(EX:疊盤子)
住列queue
處理資料先進先出的排程(EX:排隊)

連結串列linked list
每個節點紀錄資料並且指向下一個節點,將節點串連起來
樹tree
一種階層式的資料集合
樹的最開始會有一個根節點,就像樹的樹根一樣,所有的資料都是由這裡開始發展,接著會有一些其他的節點,有些節點可能在最末端,稱之為葉節點,就像樹的樹葉一樣,其他的節點則像樹的樹枝一樣
在資料結構中的實作會有父節點和子節點的分別,所以可以進一步的定義:
  1. 樹存在一個為根節點,根節點沒有父節點(不可以有迴圈)。
  2. 每個節點只有一個父節點(子樹不交集)

雜湊表hash table
無論相同或相異的資料只要有相同的索引值,就會儲存到同一個格子

死結deadlock
一個執行緒鎖住一個變數資料,導致其他執行緒無窮等待

要死結必須要滿足以下四個條件
  1. Mutual exclusion:一個資源一次只能被一個process所使用
  2. Hold and Wait: process取得一個資源之後等待其他的資源
  3. No preemption:資源只能由process自己釋放,不能由其他方式釋放
  4. Circular wait:每個process都握有另一個process請求的資源,導致每一個process都在等待另一個process釋放資源
Deadlock Avoidance死結的避免
為了確保死結不會發生,我們定義一個安全的狀態--能夠分配給所有process資源而不會造成死
結,在不安全的狀態下則有可能發生死結,假設我們知道
  1. 系統目前可用的資源數量(Available)
  2. 各process對資源的最大需求量(max)
  3. 各process目前持有的資源量(allocation)
各系統還需多少資源(need) = max - allocation
Deadlock pretention預防死結
  1. Mutual exclusion:對不可共用的資源類型而言,互斥一定成立,而可共用的資源類型,因為可以同時讀取相同檔案,所以一定不會產生。
  2. Hold and Wait:process必須保證一個行程在要求一項資源時,不可以佔用任何其它的資源。
  3. No preemption:只要某個處理元要不到所要求的資源時,便把它已經擁有的資源釋放,然後再重新要求所要資源。
  4. Circular Wait:確保循環式等候的條件不成立,我們對所有的資源型式強迫安排一個線性的順序。


=========================相關聯結===============================
講義下載
http://www.cs.pu.edu.tw/~bcc/download.htm

2015年11月29日 星期日

MS Chart Control 學習手記 - 圓餅圖

using System.Web.UI.DataVisualization.Charting;
using System.Drawing;

namespace Chart.AJAX
{
    public partial class Export_AJAX : System.Web.UI.Page
    {
        void CreateChart()
        {
            string[] xValues = { "0-20", "20-30", "30-40", "40-50", "50-60", "> 60", "unknow" };
            int[] yValues = {5, 18, 45, 17, 2, 1, 162 };

            //ChartAreas,Series,Legends 基本設定-------------------------------------------------
            Chart Chart1 = new Chart();
            Chart1.ChartAreas.Add("ChartArea1"); //圖表區域集合
            Chart1.Legends.Add("Legends1"); //圖例集合說明
            Chart1.Series.Add("Series1"); //數據序列集合

            //設定 Chart-------------------------------------------------------------------------
            Chart1.Width = 770;
            Chart1.Height = 400;
            Title title = new Title();
            title.Text = titleStr;
            title.Alignment = ContentAlignment.MiddleCenter;
            title.Font = new System.Drawing.Font("Trebuchet MS", 14F, FontStyle.Bold);
            Chart1.Titles.Add(title);

            //設定 ChartArea1--------------------------------------------------------------------
            Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = is3D;
            Chart1.ChartAreas[0].AxisX.Interval = 1;

            //設定 Legends-------------------------------------------------------------------------                
            //Chart1.Legends["Legends1"].DockedToChartArea = "ChartArea1"; //顯示在圖表內
            //Chart1.Legends["Legends1"].Docking = Docking.Bottom; //自訂顯示位置
            //背景色
            Chart1.Legends["Legends1"].BackColor = Color.FromArgb(235, 235, 235); 
            //斜線背景
            Chart1.Legends["Legends1"].BackHatchStyle = ChartHatchStyle.DarkDownwardDiagonal; 
            Chart1.Legends["Legends1"].BorderWidth = 1;
            Chart1.Legends["Legends1"].BorderColor = Color.FromArgb(200, 200, 200);

            //設定 Series1-----------------------------------------------------------------------
            Chart1.Series["Series1"].ChartType = SeriesChartType.Pie;
            //Chart1.Series["Series1"].ChartType = SeriesChartType.Doughnut;
            Chart1.Series["Series1"].Points.DataBindXY(xValues, yValues);
            Chart1.Series["Series1"].LegendText = "#VALX:    [ #PERCENT{P1} ]"; //X軸 + 百分比
            Chart1.Series["Series1"].Label = "#VALX\n#PERCENT{P1}"; //X軸 + 百分比
            //Chart1.Series["Series1"].LabelForeColor = Color.FromArgb(0, 90, 255); //字體顏色
            //字體設定
            Chart1.Series["Series1"].Font = new System.Drawing.Font("Trebuchet MS", 10, System.Drawing.FontStyle.Bold); 
            Chart1.Series["Series1"].Points.FindMaxByValue().LabelForeColor = Color.Red;
            //Chart1.Series["Series1"].Points.FindMaxByValue().Color = Color.Red;
            //Chart1.Series["Series1"].Points.FindMaxByValue()["Exploded"] = "true";
            Chart1.Series["Series1"].BorderColor = Color.FromArgb(255, 101, 101, 101);
            
            //Chart1.Series["Series1"]["DoughnutRadius"] = "80"; // ChartType為Doughnut時,Set Doughnut hole size
            //Chart1.Series["Series1"]["PieLabelStyle"] = "Inside"; //數值顯示在圓餅內
            Chart1.Series["Series1"]["PieLabelStyle"] = "Outside"; //數值顯示在圓餅外
            //Chart1.Series["Series1"]["PieLabelStyle"] = "Disabled"; //不顯示數值
            //設定圓餅效果,除 Default 外其他效果3D不適用
            Chart1.Series["Series1"]["PieDrawingStyle"] = "Default"; 
            //Chart1.Series["Series1"]["PieDrawingStyle"] = "SoftEdge";
            //Chart1.Series["Series1"]["PieDrawingStyle"] = "Concave";

            //Random rnd = new Random();  //亂數產生區塊顏色
            //foreach (DataPoint point in Chart1.Series["Series1"].Points)
            //{
            //    //pie 顏色
            //    point.Color = Color.FromArgb(150, rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255)); 
            //}
            Page.Controls.Add(Chart1);  
        }
    }
}

畫出來的圓餅圖就像這樣

2015年11月14日 星期六

DataSet、DataTable 及 DataView (ADO.NET)

DataSet、DataTable 及 DataView (ADO.NET)

.NET Framework 4
ADO.NET DataSet 是以常駐記憶體表示的資料,不論內含資料來源為何,都可提供一致的關聯式程式設計模型。 DataSet 表示一組完整的資料,包括內含、排序和約束資料的資料表,以及資料表間的關聯性。
DataSet 的使用方式有幾種,可以獨立或組合套用。 您可以:
也可以使用 XML Web Service 傳輸強型別的 DataSet DataSet 的設計非常適合使用 XML Web Service 來傳輸資料。 如需 XML Web Service 的概觀,請參閱 XML Web Services Overview 如需使用來自 XML Web Service 之 DataSet 的範例,請參閱 從 XML Web Service 使用 DataSet (ADO.NET)

建立 DataSet (ADO.NET)
說明建立 DataSet 執行個體的語法。
將 DataTable 加入至 DataSet (ADO.NET)
說明如何建立資料表和資料行,並將它們加入 DataSet
加入 DataRelation (ADO.NET)
說明如何在 DataSet 的資料表之間建立關聯性。
瀏覽 DataRelation (ADO.NET)
說明如何使用 DataSet 之資料表間的關聯性,傳回父子關係的子資料列或父資料列。
合併 DataSet 內容 (ADO.NET)
說明如何將一個 DataSetDataTable 或 DataRow 陣列的內容合併到另一個 DataSet
複製 DataSet 內容 (ADO.NET)
說明如何建立 DataSet 的複本,而此複本包含結構描述和指定的資料。
處理 DataSet 事件 (ADO.NET)
說明 DataSet 的事件和使用方式。
具型別資料集 (ADO.NET)
說明何謂具型別的 DataSet 以及它們的建立和使用方式。
DataTables (ADO.NET)
說明如何建立 DataTable、定義結構描述,以及管理資料。
DataTableReader (ADO.NET)
說明如何建立及使用 DataTableReader
DataView (ADO.NET)
說明如何建立並使用 DataViews,以及使用 DataView 事件。
在 DataSet 中使用 XML (ADO.NET)
說明 DataSet 如何將 XML 當成資料來源進行互動,包括將 DataSet 的內容載入和保存為 XML 資料。
從 XML Web Service 使用 DataSet (ADO.NET)
說明如何建立可透過 DataSet 傳輸資料的 XML Web Service。

ADO.NET 的新功能
簡介 ADO.NET 的新功能。
ADO.NET 概觀
提供 ADO.NET 的設計和元件的簡介。
從 DataAdapter 填入 DataSet (ADO.NET)
明如何自資料來源載入具有資料的 DataSet
以 DataAdapter 更新資料來源 (ADO.NET)
說明如何將 DataSet 中的資料變更解析回資料來源。
將現有的條件約束加入至 DataSet (ADO.NET)
說明如何將來自資料來源的主索引鍵資訊填入 DataSet

其他資源

2015年11月11日 星期三

索引在陣列的界限之外

我寫一個計算機的M+ 
Dim f As Integer = 0 
Dim q(f) As Single 
f = f + 1 
q(f) = Me.TextBox1.Text 


案1次 M+ 就 +1次f 

然後再用q(f)這個陣列存放數字 
但是一出現 索引在陣列的界限之外。 
請解釋或幫我解決哪裡出問題

------------------------------------------------------------------------------


Dim f As Integer = 0 
Dim q(f) As Single 

這是 q.length = 1 , q 的 ubound 值為 0 
f = f + 1 
用 q(1) 當然會超出範圍, 

再來, 你的 q(f) 應該是要一直累計下去 
所以你的 f, q() 應該是在 function 外宣告成全域的 

超出範圍的解決方式, 
1. 在 f = f + 1 之後, 加入一行 redim preserve q(f) 
2. q() 陣列改用 list 來做會更方便, 連 f 都用不到了

2015年11月10日 星期二

程式概念隨手筆記

資料抽象化
-從物件中排除細節,抽取共適的屬性及運作
封裝(資訊隱藏)
-即資訊隱藏的概念,將外界無須知道的屬性跟運作隱藏起來,避免不必要錯誤或不合理的運作產生
降低ripple-effect漣波效應
提高使用者易用性
增加程式的可維護性
繼承
子類別可以繼承父類別的屬性及運作,同時也可加入子類別自訂的屬性及運作
多型
意指相同的訊息給予不同的物件會引發不同的動作稱之

就程式而言:
利用父類別型態
接收子類別物件
做相同的動作
引發不同的行為
同名異式

較有彈性但速度較慢





垃圾回收機制
垃圾回收器有兩個基本的原理:

  1. 考慮某個物件在未來的程式執行中,將不會被存取。
  2. 向這些物件要求歸回記憶體。



費氏數列程式
int fib(int i)
{
if (i==0) return 0;
if (i==1) return 1;
return fib(i-1)+fib(i-2);
}

遞迴
int sum(int n)
{
if (n==0) return 0;
return sum(n)+sum(n-1);
}

九九乘法
for(int i=1; i<=9;i++)
{
     for(int j=1; j<=9; j++)
     {
          System.out.print(i*J)
     }
}

BubSort(int A[], int n)  //氣泡排序法之副程式
  {
    int i, j , k,t=1, Temp,sp;
    for (i=n-1; i>0; i--)
       {
        sp=1;
       for (j =0; j <=i; j++)
          if (A[j] > A[j+1])
             {  //兩數交換位置
               Temp = A[j];
               A[j] = A[j+1];
               A[j+1] = Temp;
               sp=0;
             }
             if (sp==1) break;
       }

  }


2015年10月25日 星期日

XPath 範例

這個主題會檢閱整個 XPath 參考中出現的語法範例。 它們都是以 XPath 的 XML 檔範例語法 (inventory.xml) 為基礎。 如需在測試檔中使用 XPath 運算式的範例,請參閱這個主題結尾的<聯集範例 ( | )>。
運算式
代表意義
./author
目前內容中的所有 <author> 項目。 請注意,其等同於下一資料列的運算式。
author
目前內容中的所有 <author> 項目。
first. name
目前內容中的所有 <first.name> 項目。
/bookstore
這份文件的文件項目 (<bookstore>)。
//author
文件中的所有 <author> 項目。
book[/bookstore/@specialty=@style]
所有 <book> 項目,其 style 屬性值等於文件根上之 <bookstore> 項目的 specialty 屬性值。
author/first-name
當做 <author> 項目子系的所有 <first-name> 項目。
bookstore//title
位於 <bookstore> 項目一或多層深的所有 <title> 項目 (任意子代)。 請注意,其不同於下一資料列的運算式。
bookstore/*/title
當做 <bookstore> 項目子系的所有 <title> 項目。
bookstore//book/excerpt//emph
所有 <emph> 項目,其位於 <book> 項目的 <excerpt> 子系之任何位置,以及 <bookstore> 項目的任何位置。
.//title
位於目前內容中一或多層深的所有 <title> 項目。 請注意,唯有在此情況下,才需要使用句點標記法。
author/*
當做 <author> 項目子系的所有項目。
book/*/last-name
當做 <book> 項目子系的所有 <last-name> 項目。
*/*
目前內容的所有孫代項目。
*[@specialty]
含 specialty 屬性的所有項目。
@style
目前內容的 style 屬性。
price/@exchange
目前內容中所有 <price> 項目的 exchange 屬性。
price/@exchange/total
傳回空節點集,因為屬性不含項目子系。 XML 路徑語言 (XPath) 文法允許這個運算式,但其效果不大。
book[@style]
內含目前內容之 style 屬性的所有 <book> 項目。
book/@style
目前內容之所有 <book> 項目的 style 屬性。
@*
目前項目內容的所有屬性。
./first-name
目前內容節點中的所有 <first-name> 項目。 請注意,其等同於下一資料列的運算式。
first-name
目前內容節點中的所有 <first-name> 項目。
author[1]
目前內容節點中的第一個 <author> 項目。
author[first-name][3]
具有 <first-name> 子系的第三個 <author> 項目。
my:book
my 命名空間的 <book> 項目。
my:*
my 命名空間的所有項目。
@my:*
my 命名空間的所有屬性 (不含 my 命名空間項目上不合格的屬性)。
請注意,索引與父代是相對的。 請參考下列資料:
<x>
  <y/>
  <y/>
</x>
<x>
  <y/>
  <y/>
</x>
運算式
代表意義
x/y[1]
每一個 <x> 的第一個 <y> 子系。 其等同於下一列的運算式。
x/y[position() = 1]
每一個 <x> 的第一個 <y> 子系。
(x/y)[1]
來自 <x> 項目整組 <y> 子系的第一個 <y>
x[1]/y[2]
第一個 <x> 的第二個 <y> 子系。
如需其他範例,請參考<XPath 的 XML 檔範例>。
運算式
代表意義
book[last()]
目前內容節點的最後一個 <book> 項目。
book/author[last()]
目前內容節點中每一個 <book> 項目的最後一個 <author> 子系。
(book/author)[last()]
最後一個 <author> 項目,其來自目前內容節點之 <book> 項目的整組 <author> 子系。
book[excerpt]
至少包含一個 <excerpt> 項目子系的所有 <book> 項目。
book[excerpt]/title
當做 <book> 項目子系,且至少包含一個 <excerpt> 項目子系的所有 <title> 項目。
book[excerpt]/author[degree]
至少包含一個 <degree> 項目子系,且當做至少包含一個 <excerpt> 項目之 <book> 項目子系的所有 <author> 項目。
book[author/degree]
包含 <author> 子系 (至少包含一個 <degree> 子系) 的所有 <book> 項目。
author[degree][award]
至少包含一個 <degree> 項目子系和至少一個 <award> 項目子系的所有 <author> 項目。
author[degree and award]
至少包含一個 <degree> 項目子系和至少一個 <award> 項目子系的所有 <author> 項目。
author[(degree or award) and publication]
至少包含一個 <degree> 或 <award> 和至少一個 <publication> 當做子系的所有 <author> 項目。
author[degree and not(publication)]
至少包含一個 <degree> 項目子系,且不包含 <publication> 項目子系的所有 <author> 項目。
author[not(degree or award) and publication]
至少包含一個 <publication> 項目子系,且不包含 <degree> 也不包含 <award> 項目子系的所有<author> 項目。
author[last-name = "Bob"]
至少包含一個 <last-name> 項目子系 (包含值 Bob) 的所有 <author> 項目。
author[last-name[1] = "Bob"]
其中第一個 <last-name> 子項目之值為 Bob 的所有 <author> 項目。 請注意,其等同於下一資料列的運算式。
author[last-name [position()=1]= "Bob"]
其中第一個 <last-name> 子項目之值為 Bob 的所有 <author> 項目。
degree[@from != "Harvard"]
其中 from 屬性不等於 "Harvard" 的所有 <degree> 項目。
author[. = "Matthew Bob"]
其值為 Matthew Bob 的所有 <author> 項目。
author[last-name = "Bob" and ../price &gt; 50]
內含 <last-name> 子項目 (其值為 Bob) 和 <price> 同層級項目 (其值大於 50) 的所有 <author> 項目。
book[position() &lt;= 3]
前三本書 (1、2、3)。
author[not(last-name = "Bob")]
不包含 <last-name> 子項目 (包含值 Bob) 的所有 <author> 項目。
author[first-name = "Bob"]
至少包含一個 <first-name> 子系 (包含值 Bob) 的所有 <author> 項目。
author[* = "Bob"]
所有包含值為 Bob 之任何子項目的所有 author 項目。
author[last-name = "Bob" and first-name = "Joe"]
內含 <last-name> 子項目 (含值 Bob) 和 <first-name> 子項目 (其值為 Joe) 的所有 <author> 項目。
price[@intl = "Canada"]
內容節點中 intl 屬性等於 "Canada" 的所有 <price> 項目。
degree[position() &lt; 3]
內容節點子系的前兩個 <degree> 項目。
p/text()[2]
內容節點中每個 <p> 項目的第二個文字節點。
ancestor::book[1]
內容節點中最接近的 <book> 上階。
ancestor::book[author][1]
內容節點的最接近 <book> 上階,且這個 <book> 項目將 <author> 項目當做子系。
ancestor::author[parent::book][1]
目前內容中最接近的 <author> 上階,並且這個 <author> 項目是 <book> 項目的子系。

為了展示聯集運算,我們使用下列 XPath 運算式:
x | y/x
在下列 XML 檔中,選取值為 green 或 blue 的所有 <x> 元素:

ms256086.collapse_all(zh-tw,VS.120).gifXML 檔 (data1.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="union.xsl"?>
<root>
   <x>green</x>
   <y>
      <x>blue</x>
      <x>blue</x>
   </y>
   <z>
      <x>red</x>
      <x>red</x>
   </z>
   <x>green</x>
</root>


ms256086.collapse_all(zh-tw,VS.120).gifXSLT 檔 (union.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="root">
   <xsl:for-each select="x | y/x">
      <xsl:value-of select="."/>,
      <xsl:if test="not(position()=last())">,</xsl:if>
   </xsl:for-each>
</xsl:template>

</xsl:stylesheet>


ms256086.collapse_all(zh-tw,VS.120).gif格式化輸出

green,blue,blue,green

ms256086.collapse_all(zh-tw,VS.120).gif處理器輸出

<?xml version="1.0" encoding="UTF-16"?>green,blue,blue,green