<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Jaxu's home</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/53608/rss</id><updated>2012-01-31T09:33:59Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/53608/rss"/><entry><id>http://www.cnblogs.com/jaxu/archive/2012/01/31/2333798.html</id><title type="text">IE9不能在线打开InfoPath表单的解决办法</title><summary type="text">解决在IE9中无法在线打开InfoPath表单的问题。</summary><published>2012-01-31T09:25:00Z</published><updated>2012-01-31T09:25:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2012/01/31/2333798.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2012/01/31/2333798.html"/><content type="html">&lt;p&gt;在IE9中，我们在线打开SharePoint文档库中的InfoPath表单时会出现下面的错误，如何解决这个问题？&lt;img style="margin-right: auto; margin-left: auto; display: block;" src="http://pic002.cnblogs.com/images/2012/51946/2012013117104153.jpg" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1. 在IE9的工具栏上单击右键，选择Menu bar，显示菜单栏。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block;" src="http://pic002.cnblogs.com/images/2012/51946/2012013117174667.jpg" alt="" width="478" height="186" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2. 在菜单栏中选择Tools-&amp;gt;Compatibility View Settings，在打开的窗口中将当前站点添加到兼容性视图的列表中。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block;" src="http://pic002.cnblogs.com/images/2012/51946/2012013117220090.jpg" alt="" width="311" height="356" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3. 点击确定，刷新页面。然后就可以IE9中在线打开InfoPath表单了。当然，你也可以勾选Display all websites in Compatibility View，这样所有的站点都会默认在兼容模式下打开，也就不会出现无法在线打开InfoPath表单的问题了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2333798.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2012/01/31/2333798.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/12/31/2308376.html</id><title type="text">日期和时间处理的类库</title><summary type="text">一个处理日期和时间的工具类库。</summary><published>2011-12-31T01:31:00Z</published><updated>2011-12-31T01:31:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/12/31/2308376.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/12/31/2308376.html"/><content type="html">&lt;p&gt;发一个专门处理时间和日期的类库，记录以备查询。&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; Utilities&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; Common DateTime Methods.&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;enum&lt;/span&gt; Quarter&lt;br /&gt;    {&lt;br /&gt;        First = &lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;br /&gt;        Second = &lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&lt;br /&gt;        Third = &lt;span style="color: #800080;"&gt;3&lt;/span&gt;,&lt;br /&gt;        Fourth = &lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;enum&lt;/span&gt; Month&lt;br /&gt;    {&lt;br /&gt;        January = &lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;br /&gt;        February = &lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&lt;br /&gt;        March = &lt;span style="color: #800080;"&gt;3&lt;/span&gt;,&lt;br /&gt;        April = &lt;span style="color: #800080;"&gt;4&lt;/span&gt;,&lt;br /&gt;        May = &lt;span style="color: #800080;"&gt;5&lt;/span&gt;,&lt;br /&gt;        June = &lt;span style="color: #800080;"&gt;6&lt;/span&gt;,&lt;br /&gt;        July = &lt;span style="color: #800080;"&gt;7&lt;/span&gt;,&lt;br /&gt;        August = &lt;span style="color: #800080;"&gt;8&lt;/span&gt;,&lt;br /&gt;        September = &lt;span style="color: #800080;"&gt;9&lt;/span&gt;,&lt;br /&gt;        October = &lt;span style="color: #800080;"&gt;10&lt;/span&gt;,&lt;br /&gt;        November = &lt;span style="color: #800080;"&gt;11&lt;/span&gt;,&lt;br /&gt;        December = &lt;span style="color: #800080;"&gt;12&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; DateUtilities&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; Quarter&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfQuarter( &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Year, Quarter Qtr )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( Qtr == Quarter.First )    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 1st Quarter = January 1 to March 31&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( Qtr == Quarter.Second ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 2nd Quarter = April 1 to June 30&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;4&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( Qtr == Quarter.Third ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 3rd Quarter = July 1 to September 30&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;7&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 4th Quarter = October 1 to December 31&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;10&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfQuarter( &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Year, Quarter Qtr )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( Qtr == Quarter.First )    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 1st Quarter = January 1 to March 31&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;3&lt;/span&gt;, DateTime.DaysInMonth( Year, &lt;span style="color: #800080;"&gt;3&lt;/span&gt; ), &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( Qtr == Quarter.Second ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 2nd Quarter = April 1 to June 30&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;6&lt;/span&gt;, DateTime.DaysInMonth( Year, &lt;span style="color: #800080;"&gt;6&lt;/span&gt; ), &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( Qtr == Quarter.Third ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 3rd Quarter = July 1 to September 30&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;9&lt;/span&gt;, DateTime.DaysInMonth( Year, &lt;span style="color: #800080;"&gt;9&lt;/span&gt; ), &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 4th Quarter = October 1 to December 31&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;12&lt;/span&gt;, DateTime.DaysInMonth( Year, &lt;span style="color: #800080;"&gt;12&lt;/span&gt; ), &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; Quarter GetQuarter( Month month )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( month &amp;lt;= Month.March )    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 1st Quarter = January 1 to March 31&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; Quarter.First;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( ( month &amp;gt;= Month.April ) &amp;amp;&amp;amp; ( month &amp;lt;= Month.June ) ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 2nd Quarter = April 1 to June 30&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; Quarter.Second;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( ( month &amp;gt;= Month.July ) &amp;amp;&amp;amp; ( month &amp;lt;= Month.September ) ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 3rd Quarter = July 1 to September 30&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; Quarter.Third;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 4th Quarter = October 1 to December 31&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; Quarter.Fourth;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfLastQuarter()&lt;br /&gt;        {            &lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( DateTime.Now.Month &amp;lt;= (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;)Month.March ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;go to last quarter of previous year&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfQuarter( DateTime.Now.Year - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, GetQuarter( Month.December ));&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;return last quarter of current year&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfLastQuarter()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( DateTime.Now.Month &amp;lt;= &lt;span style="color: #800080;"&gt;3&lt;/span&gt; ) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;go to last quarter of previous year&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfQuarter( DateTime.Now.Year - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, GetQuarter( Month.December ));&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;return last quarter of current year&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfCurrentQuarter()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month ));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfCurrentQuarter()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month ));&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; Weeks&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfLastWeek()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; DaysToSubtract = (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;)DateTime.Now.DayOfWeek + &lt;span style="color: #800080;"&gt;7&lt;/span&gt;;&lt;br /&gt;            DateTime dt = DateTime.Now.Subtract( System.TimeSpan.FromDays( DaysToSubtract ) );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( dt.Year, dt.Month, dt.Day, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfLastWeek()&lt;br /&gt;        {&lt;br /&gt;            DateTime dt = GetStartOfLastWeek().AddDays(&lt;span style="color: #800080;"&gt;6&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( dt.Year, dt.Month, dt.Day, &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfCurrentWeek()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; DaysToSubtract = (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;)DateTime.Now.DayOfWeek ;&lt;br /&gt;            DateTime dt = DateTime.Now.Subtract( System.TimeSpan.FromDays( DaysToSubtract ) );&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( dt.Year, dt.Month, dt.Day, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfCurrentWeek()&lt;br /&gt;        {&lt;br /&gt;            DateTime dt = GetStartOfCurrentWeek().AddDays(&lt;span style="color: #800080;"&gt;6&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( dt.Year, dt.Month, dt.Day, &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; Months&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfMonth( &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Month, &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Year )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, Month, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfMonth( &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Month, &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Year )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, Month, DateTime.DaysInMonth( Year, Month ), &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfLastMonth()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( DateTime.Now.Month == &lt;span style="color: #800080;"&gt;1&lt;/span&gt; )&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfMonth( &lt;span style="color: #800080;"&gt;12&lt;/span&gt;, DateTime.Now.Year - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfMonth( DateTime.Now.Month -&lt;span style="color: #800080;"&gt;1&lt;/span&gt;, DateTime.Now.Year );            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfLastMonth()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;( DateTime.Now.Month == &lt;span style="color: #800080;"&gt;1&lt;/span&gt; )&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfMonth( &lt;span style="color: #800080;"&gt;12&lt;/span&gt;, DateTime.Now.Year - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfMonth( DateTime.Now.Month -&lt;span style="color: #800080;"&gt;1&lt;/span&gt;, DateTime.Now.Year );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfCurrentMonth()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfMonth( DateTime.Now.Month, DateTime.Now.Year );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfCurrentMonth()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfMonth( DateTime.Now.Month, DateTime.Now.Year );&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; Years&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfYear( &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Year )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfYear( &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Year )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( Year, &lt;span style="color: #800080;"&gt;12&lt;/span&gt;, DateTime.DaysInMonth( Year, &lt;span style="color: #800080;"&gt;12&lt;/span&gt; ), &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfLastYear()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfYear( DateTime.Now.Year - &lt;span style="color: #800080;"&gt;1&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfLastYear()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfYear( DateTime.Now.Year - &lt;span style="color: #800080;"&gt;1&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfCurrentYear()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetStartOfYear( DateTime.Now.Year );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfCurrentYear()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; GetEndOfYear( DateTime.Now.Year );&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;        &lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; Days&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetStartOfDay( DateTime date )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( date.Year, date.Month, date.Day, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; DateTime GetEndOfDay( DateTime date )&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DateTime( date.Year, date.Month, date.Day, &lt;span style="color: #800080;"&gt;23&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;59&lt;/span&gt;, &lt;span style="color: #800080;"&gt;999&lt;/span&gt; );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2308376.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/12/31/2308376.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/11/29/2267774.html</id><title type="text">SharePoint客户端对象模型&amp;quot;(400) Bad Request&amp;quot;错误</title><summary type="text">解决在使用SharePoint客户端对象模型时所遇到的"(400) Bad Request"错误。</summary><published>2011-11-29T08:12:00Z</published><updated>2011-11-29T08:12:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267774.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267774.html"/><content type="html">&lt;p&gt;当你在使用&lt;strong&gt;Microsoft.SharePoint.Client.FileCollection.Add&lt;/strong&gt;方法或&lt;strong&gt;Microsoft.SharePoint.Client.File.SaveBinary&lt;/strong&gt;方法向SharePoint Library中创建或修改文件时，可能会遇到"The remote server returned an error: (400) Bad Request"的错误。要解决这个问题，你需要修改SharePoint默认的&lt;a href="http://msdn.microsoft.com/zh-cn/library/ff599489.aspx"&gt;Maximum Message Size&lt;/a&gt;。&lt;/p&gt;&#xD;
&lt;p&gt;打开SharePoint 2010&amp;nbsp;Management Shell然后执行下面的命令：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;$ws&amp;nbsp;=&amp;nbsp;[Microsoft.SharePoint.Administration.SPWebService]::ContentService&lt;br /&gt;$ws.ClientRequestServiceSettings.MaxReceivedMessageSize&amp;nbsp;=&amp;nbsp;your_value&amp;nbsp;&lt;br /&gt;$ws.Update()&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;推荐将MaxReceivedMessageSize的大小设置为Int32.MaxValue - 1，也就是2147483646.&lt;/p&gt;&#xD;
&lt;p&gt;通常情况下你可能需要强制重启你的IIS服务，可以使用下面的命令：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;iisreset&amp;nbsp;/noforce&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;或者，你还可以使用&lt;strong&gt;Microsoft.SharePoint.Client.File.SaveBinaryDirect&lt;/strong&gt;方法来上传文件，该方法不存在这种文件大小的限制。具体的使用方法可以参考我的另一篇文章&amp;ldquo;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267572.html"&gt;有关SharePoint Client Object应用的笔记&lt;/a&gt;&amp;rdquo;。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2267774.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267774.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/11/29/2267572.html</id><title type="text">有关SharePoint Client Object应用的笔记</title><summary type="text">记录一些平常用SharePoint Client Object访问并管理SharePoint List或Library的例子。</summary><published>2011-11-29T07:59:00Z</published><updated>2011-11-29T07:59:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267572.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267572.html"/><content type="html">&lt;p&gt;记录一些平常用SharePoint Client Object访问并管理SharePoint List或Library的例子。&lt;/p&gt;&#xD;
&lt;p&gt;首先，所有使用SharePoint Client Object的.NET工程都需要引用&lt;strong&gt;Microsoft.SharePoint.Client.dll&lt;/strong&gt;和&lt;strong&gt;Microsoft.SharePoint.Client.Runtime.dll&lt;/strong&gt;这两个类库。这里提供一个下载：&lt;a href="http://files.cnblogs.com/jaxu/Microsoft.SharePoint.Client.zip"&gt;Microsoft.SharePoint.Client.zip&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面是一些例子：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;1. 从指定的List或Library中找出Folder&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('066869fa-6876-411e-9551-ffae10f6f8be')"&gt;&#xD;
&lt;div id="cnblogs_code_open_066869fa-6876-411e-9551-ffae10f6f8be" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Get&amp;nbsp;folder&amp;nbsp;in&amp;nbsp;the&amp;nbsp;specific&amp;nbsp;SharePoint&amp;nbsp;List.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="clientContext"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="listName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="folderServerRelativeUrl"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;If&amp;nbsp;the&amp;nbsp;folder&amp;nbsp;does&amp;nbsp;not&amp;nbsp;exist&amp;nbsp;in&amp;nbsp;the&amp;nbsp;specific&amp;nbsp;SharePoint&amp;nbsp;List&amp;nbsp;return&amp;nbsp;null,&amp;nbsp;else&amp;nbsp;return&amp;nbsp;the&amp;nbsp;folder&amp;nbsp;object.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&amp;nbsp;Folder&amp;nbsp;GetFolderInList(ClientContext&amp;nbsp;clientContext,&amp;nbsp;String&amp;nbsp;listName,&amp;nbsp;String&amp;nbsp;folderServerRelativeUrl)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Folder&amp;nbsp;existingFolder&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web&amp;nbsp;web&amp;nbsp;=&amp;nbsp;clientContext.Web;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ListCollection&amp;nbsp;lists&amp;nbsp;=&amp;nbsp;web.Lists;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;existingFolder&amp;nbsp;=&amp;nbsp;web.GetFolderByServerRelativeUrl(folderServerRelativeUrl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(existingFolder);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;existingFolder&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&amp;nbsp;existingFolder;&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;listName为所要查询的List或Library的名称，不带路径URL。folderServerRelativeUrl为所要查询的Folder的相对路径，如&amp;ldquo;/sitename/library/folder/subfolder/&amp;rdquo;。使用的时候需要传入ClientContext对象。如果待查询的Folder存在则返回对应的Microsoft.SharePoint.Client.Folder对象，否则返回null。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;2. 从指定的URL中确定已存在的Folder&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('43704190-9878-403d-8eb4-d1f079b5f808')"&gt;&#xD;
&lt;div id="cnblogs_code_open_43704190-9878-403d-8eb4-d1f079b5f808" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Find&amp;nbsp;the&amp;nbsp;exist&amp;nbsp;folder&amp;nbsp;in&amp;nbsp;the&amp;nbsp;given&amp;nbsp;URL.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="clientContext"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="listName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="folderServerRelativeUrl"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Returns&amp;nbsp;the&amp;nbsp;existed&amp;nbsp;SharePoint&amp;nbsp;Folder&amp;nbsp;object.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&amp;nbsp;Folder&amp;nbsp;FindExistFolder(ClientContext&amp;nbsp;clientContext,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;listName,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;folderServerRelativeUrl)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web&amp;nbsp;web&amp;nbsp;=&amp;nbsp;clientContext.Web;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;nbsp;list&amp;nbsp;=&amp;nbsp;web.Lists.GetByTitle(listName);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Folder&amp;nbsp;folder&amp;nbsp;=&amp;nbsp;GetFolderInList(clientContext,&amp;nbsp;listName,&amp;nbsp;folderServerRelativeUrl);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(folder&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&amp;nbsp;iLastSlashPos&amp;nbsp;=&amp;nbsp;folderServerRelativeUrl.LastIndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(iLastSlashPos&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;current&amp;nbsp;folder&amp;nbsp;does&amp;nbsp;not&amp;nbsp;exist,&amp;nbsp;back&amp;nbsp;to&amp;nbsp;the&amp;nbsp;parent&amp;nbsp;folder.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;parentFolderUrl&amp;nbsp;=&amp;nbsp;folderServerRelativeUrl.Substring(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;iLastSlashPos);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&amp;nbsp;FindExistFolder(clientContext,&amp;nbsp;listName,&amp;nbsp;parentFolderUrl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&amp;nbsp;folder;&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;listName为所要查询的List或Library的名称，不带路径URL。folderServerRelativeUrl为所要查询的Folder的相对路径，如&amp;ldquo;/sitename/library/folder/subfolder/&amp;rdquo;。使用的时候需要传入ClientContext对象。该方法通过递归调用的方式从给定的URL中找出从哪一级开始的Folder在List或Library中是存在的。例如，给定一个Folder的相对地址&amp;ldquo;/sitename/library/folder/subfolder1/subfolder1_1/subfolder1_1_1/&amp;rdquo;，该方法将从最后一个folder开始进行递归，返回存在的那个Folder对象。如果所有的folder均不存在，则返回null。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;3. 通过给定的URL在List或Library中创建Folder&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('efe4cec7-81cf-455f-a7ac-a76933fb84ea')"&gt;&#xD;
&lt;div id="cnblogs_code_open_efe4cec7-81cf-455f-a7ac-a76933fb84ea" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Check&amp;nbsp;if&amp;nbsp;the&amp;nbsp;folder&amp;nbsp;exists&amp;nbsp;in&amp;nbsp;the&amp;nbsp;target&amp;nbsp;list,&amp;nbsp;if&amp;nbsp;it&amp;nbsp;does&amp;nbsp;not,&amp;nbsp;create&amp;nbsp;the&amp;nbsp;folders&amp;nbsp;level&amp;nbsp;by&amp;nbsp;level.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="clientContext"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="listName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="folderServerRelativeUrl"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&amp;nbsp;EnsureFolderExist(ClientContext&amp;nbsp;clientContext,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;listName,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;folderServerRelativeUrl)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Remove&amp;nbsp;the&amp;nbsp;last&amp;nbsp;character&amp;nbsp;'/'&amp;nbsp;from&amp;nbsp;the&amp;nbsp;string&amp;nbsp;folderServerRelativeUrl.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(folderServerRelativeUrl.Length&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;folderServerRelativeUrl.Last().Equals(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;folderServerRelativeUrl&amp;nbsp;=&amp;nbsp;folderServerRelativeUrl.Substring(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;folderServerRelativeUrl.Length&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web&amp;nbsp;web&amp;nbsp;=&amp;nbsp;clientContext.Web;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;nbsp;list&amp;nbsp;=&amp;nbsp;web.Lists.GetByTitle(listName);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Folder&amp;nbsp;folder&amp;nbsp;=&amp;nbsp;FindExistFolder(clientContext,&amp;nbsp;listName,&amp;nbsp;folderServerRelativeUrl);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(folder&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Get&amp;nbsp;the&amp;nbsp;new&amp;nbsp;folders&amp;nbsp;path&amp;nbsp;string&amp;nbsp;part.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;s&amp;nbsp;=&amp;nbsp;folderServerRelativeUrl.Replace(folder.ServerRelativeUrl,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Empty);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(s.Length&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;s.First().Equals(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s&amp;nbsp;=&amp;nbsp;s.Substring(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;s.Length&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[]&amp;nbsp;arr&amp;nbsp;=&amp;nbsp;s.Split(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(arr.Length&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;tmp&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Create&amp;nbsp;new&amp;nbsp;folders&amp;nbsp;level&amp;nbsp;by&amp;nbsp;level.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;arr.Length;&amp;nbsp;i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(arr[i].Trim().Length&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;arr[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;folder.Folders.Add(folder.ServerRelativeUrl&amp;nbsp;+&amp;nbsp;tmp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(folder);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;顾名思义，该方法借助于FindExistFolder方法首先从给定的folder相对路径中找出已存在的folder，然后逐级创建folder。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;4. 使用Microsoft.SharePoint.Client.FileCollection.Add方法向目标Library中创建或修改文件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('2ecf74fe-58e5-41c9-9de8-76eefee5c246')"&gt;&#xD;
&lt;div id="cnblogs_code_open_2ecf74fe-58e5-41c9-9de8-76eefee5c246" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Upload&amp;nbsp;a&amp;nbsp;document&amp;nbsp;to&amp;nbsp;the&amp;nbsp;specific&amp;nbsp;SharePoint&amp;nbsp;List.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="clientContext"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="listName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="documentUrl"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;The&amp;nbsp;target&amp;nbsp;document&amp;nbsp;path,&amp;nbsp;e.g.&amp;nbsp;/site/library/folder/word1.docx.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="documentStream"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="contentType"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;ContentType&amp;nbsp;string&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&amp;nbsp;UploadFileToList(ClientContext&amp;nbsp;clientContext,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;listName,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;documentUrl,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;byte&lt;/span&gt;[]&amp;nbsp;documentStream,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;contentType)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web&amp;nbsp;web&amp;nbsp;=&amp;nbsp;clientContext.Web;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;nbsp;list&amp;nbsp;=&amp;nbsp;web.Lists.GetByTitle(listName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;nbsp;bTarFileExist&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Try&amp;nbsp;to&amp;nbsp;load&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.SharePoint.Client.File&amp;nbsp;targetFile&amp;nbsp;=&amp;nbsp;web.GetFileByServerRelativeUrl(documentUrl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFile.RefreshLoad();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(targetFile);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bTarFileExist&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;If&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;does&amp;nbsp;exist.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(bTarFileExist)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;If&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;is&amp;nbsp;checked&amp;nbsp;out&amp;nbsp;by&amp;nbsp;another&amp;nbsp;user,&amp;nbsp;execute&amp;nbsp;UndoCheckOut.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(targetFile.CheckOutType&amp;nbsp;!=&amp;nbsp;CheckOutType.None)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFile.UndoCheckOut();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Check&amp;nbsp;out&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;before&amp;nbsp;uploading.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFile.CheckOut();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Construct&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;object.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileCreationInformation&amp;nbsp;newItemInfo&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;FileCreationInformation();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newItemInfo.Content&amp;nbsp;=&amp;nbsp;documentStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newItemInfo.Overwrite&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newItemInfo.Url&amp;nbsp;=&amp;nbsp;documentUrl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.SharePoint.Client.File&amp;nbsp;uploadFile&amp;nbsp;=&amp;nbsp;list.RootFolder.Files.Add(newItemInfo);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Get&amp;nbsp;target&amp;nbsp;file&amp;nbsp;ContentType.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ContentType&amp;nbsp;newFileContentType&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(!defaultContentTypes.Contains(contentType))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ContentTypeCollection&amp;nbsp;listContentTypes&amp;nbsp;=&amp;nbsp;list.ContentTypes;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(listContentTypes,&amp;nbsp;types&amp;nbsp;=&amp;gt;&amp;nbsp;types.Include(type&amp;nbsp;=&amp;gt;&amp;nbsp;type.Id,&amp;nbsp;type&amp;nbsp;=&amp;gt;&amp;nbsp;type.Name,&amp;nbsp;type&amp;nbsp;=&amp;gt;&amp;nbsp;type.Parent));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;clientContext.LoadQuery(listContentTypes.Where(c&amp;nbsp;=&amp;gt;&amp;nbsp;c.Name&amp;nbsp;==&amp;nbsp;contentType));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newFileContentType&amp;nbsp;=&amp;nbsp;result.FirstOrDefault();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Set&amp;nbsp;target&amp;nbsp;file&amp;nbsp;ContentType&amp;nbsp;with&amp;nbsp;the&amp;nbsp;correct&amp;nbsp;value.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(uploadFile.ListItemAllFields);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(newFileContentType&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uploadFile.ListItemAllFields[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypeId&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;newFileContentType.Id.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uploadFile.ListItemAllFields.Update();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Check&amp;nbsp;in&amp;nbsp;the&amp;nbsp;docuemnt&amp;nbsp;with&amp;nbsp;a&amp;nbsp;draft&amp;nbsp;version.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uploadFile.CheckIn(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Empty,&amp;nbsp;CheckinType.MinorCheckIn);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Excute&amp;nbsp;the&amp;nbsp;document&amp;nbsp;upload.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;该方法首先根据传入的documentUrl判断文件是否已经存在，如果存在则需要先将文件check out或undo check out，然后通过Microsoft.SharePoint.Client.FileCollection.Add的方式上传文件。如果目标library中有ContextType的限制，则还需要指定文件的ContentType，defaultContentTypes是一个存放指定ContentType的静态String数组，如果传入的contentType字符串不在defaultContentTypes数组中，则需要给文件指定新的ContentType。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;5. 使用Microsoft.SharePoint.Client.File.SaveBinaryDirect方法向目标Library中创建或修改文件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('d34947c6-c10b-4279-b0e2-035f16040ea6')"&gt;&#xD;
&lt;div id="cnblogs_code_open_d34947c6-c10b-4279-b0e2-035f16040ea6" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Upload&amp;nbsp;a&amp;nbsp;document&amp;nbsp;to&amp;nbsp;the&amp;nbsp;specific&amp;nbsp;SharePoint&amp;nbsp;List.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="clientContext"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="listName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="documentUrl"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;The&amp;nbsp;target&amp;nbsp;document&amp;nbsp;path,&amp;nbsp;e.g.&amp;nbsp;/site/library/folder/word1.docx.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="fs"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="contentType"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&amp;nbsp;UploadFileToListByFileStream(ClientContext&amp;nbsp;clientContext,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;listName,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;documentUrl,&amp;nbsp;FileStream&amp;nbsp;fs,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;contentType)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web&amp;nbsp;web&amp;nbsp;=&amp;nbsp;clientContext.Web;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;nbsp;list&amp;nbsp;=&amp;nbsp;web.Lists.GetByTitle(listName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;nbsp;bTarFileExist&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Try&amp;nbsp;to&amp;nbsp;load&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.SharePoint.Client.File&amp;nbsp;targetFile&amp;nbsp;=&amp;nbsp;web.GetFileByServerRelativeUrl(documentUrl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFile.RefreshLoad();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(targetFile);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bTarFileExist&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;If&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;does&amp;nbsp;exist.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(bTarFileExist)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;If&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;is&amp;nbsp;checked&amp;nbsp;out&amp;nbsp;by&amp;nbsp;another&amp;nbsp;user,&amp;nbsp;execute&amp;nbsp;UndoCheckOut.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(targetFile.CheckOutType&amp;nbsp;!=&amp;nbsp;CheckOutType.None)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFile.UndoCheckOut();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Check&amp;nbsp;out&amp;nbsp;the&amp;nbsp;target&amp;nbsp;document&amp;nbsp;before&amp;nbsp;uploading.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;targetFile.CheckOut();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Upload&amp;nbsp;file.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext,&amp;nbsp;documentUrl,&amp;nbsp;fs,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Get&amp;nbsp;the&amp;nbsp;new&amp;nbsp;file.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.SharePoint.Client.File&amp;nbsp;newFile&amp;nbsp;=&amp;nbsp;web.GetFileByServerRelativeUrl(documentUrl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newFile.RefreshLoad();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(newFile);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Get&amp;nbsp;target&amp;nbsp;file&amp;nbsp;ContentType.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ContentType&amp;nbsp;newFileContentType&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(!defaultContentTypes.Contains(contentType))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ContentTypeCollection&amp;nbsp;listContentTypes&amp;nbsp;=&amp;nbsp;list.ContentTypes;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(listContentTypes,&amp;nbsp;types&amp;nbsp;=&amp;gt;&amp;nbsp;types.Include(type&amp;nbsp;=&amp;gt;&amp;nbsp;type.Id,&amp;nbsp;type&amp;nbsp;=&amp;gt;&amp;nbsp;type.Name,&amp;nbsp;type&amp;nbsp;=&amp;gt;&amp;nbsp;type.Parent));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;clientContext.LoadQuery(listContentTypes.Where(c&amp;nbsp;=&amp;gt;&amp;nbsp;c.Name&amp;nbsp;==&amp;nbsp;contentType));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newFileContentType&amp;nbsp;=&amp;nbsp;result.FirstOrDefault();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Set&amp;nbsp;new&amp;nbsp;file&amp;nbsp;ContentType&amp;nbsp;with&amp;nbsp;the&amp;nbsp;correct&amp;nbsp;value.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(newFile.ListItemAllFields);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newFile.ListItemAllFields[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypeId&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;newFileContentType.Id.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newFile.ListItemAllFields.Update();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Check&amp;nbsp;in&amp;nbsp;the&amp;nbsp;docuemnt&amp;nbsp;with&amp;nbsp;a&amp;nbsp;draft&amp;nbsp;version.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newFile.CheckIn(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Empty,&amp;nbsp;CheckinType.MinorCheckIn);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Excute&amp;nbsp;the&amp;nbsp;document&amp;nbsp;upload.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;与UploadFileToList方法类似，该方法通过Microsoft.SharePoint.Client.File.SaveBinaryDirect方法向目标Library中上传文件，接收FileStream而不是文件的字节数组。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff6600;"&gt;6. 读取List或Library中的数据并返回指定格式的XML文档对象&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('11f0329f-a385-465a-979d-b0a66cb0bd90')"&gt;&#xD;
&lt;div id="cnblogs_code_open_11f0329f-a385-465a-979d-b0a66cb0bd90" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&amp;nbsp;XDocument&amp;nbsp;GetXmlFromLibrary(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;siteUrl,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;listName)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;host&amp;nbsp;=&amp;nbsp;(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;Uri(siteUrl)).Host;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;root&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Items&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&amp;nbsp;(ClientContext&amp;nbsp;clientContext&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;ClientContext(siteUrl))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web&amp;nbsp;web&amp;nbsp;=&amp;nbsp;clientContext.Web;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;nbsp;list&amp;nbsp;=&amp;nbsp;web.Lists.GetByTitle(listName);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CamlQuery&amp;nbsp;camlQuery&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;CamlQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;camlQuery.ViewXml&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;View&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ViewFields&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FieldRef&amp;nbsp;Name='Title'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FieldRef&amp;nbsp;Name='InsideTrackCategories'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ViewFields&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;RowLimit&amp;gt;0&amp;lt;/RowLimit&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/View&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ListItemCollection&amp;nbsp;listItems&amp;nbsp;=&amp;nbsp;list.GetItems(camlQuery);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(list);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;clientContext.Load(listItems);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.Load(listItems,&amp;nbsp;s&amp;nbsp;=&amp;gt;&amp;nbsp;s.Include(c&amp;nbsp;=&amp;gt;&amp;nbsp;c.Id,&amp;nbsp;c&amp;nbsp;=&amp;gt;&amp;nbsp;c.DisplayName,&amp;nbsp;c&amp;nbsp;=&amp;gt;&amp;nbsp;c.FieldValuesAsText,&amp;nbsp;c&amp;nbsp;=&amp;gt;&amp;nbsp;c.FieldValuesForEdit));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientContext.ExecuteQuery();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt;&amp;nbsp;(ListItem&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&amp;nbsp;listItems)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;eleTitle&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;item.FieldValuesAsText[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;eleUrl&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Url&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Concat(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;host,&amp;nbsp;item.FieldValuesAsText[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileRef&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;].ToString()));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;eleInsideCategories&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;InsideCategories&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;s&amp;nbsp;=&amp;nbsp;item.FieldValuesAsText[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;InsideTrackCategories&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.IsNullOrEmpty(s))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[]&amp;nbsp;arr&amp;nbsp;=&amp;nbsp;s.Split(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;;&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;nbsp;tmp&amp;nbsp;&lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&amp;nbsp;arr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;eleCategory&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;tmp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;eleInsideCategories.Add(eleCategory);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;eleItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Item&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;eleTitle,&amp;nbsp;eleUrl,&amp;nbsp;eleInsideCategories);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;root.Add(eleItem);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XDocument&amp;nbsp;doc&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&amp;nbsp;XDocument();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc.Add(root);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&amp;nbsp;doc;&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;该方法比较简单，通过指定的siteUrl和listName从List或Library中读取指定字段的数据，然后按照一定的格式返回XML文档对象。下面是所返回的XML文档对象的结构：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml&amp;nbsp;version="1.0"&amp;nbsp;encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Items&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InsideCategories&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InsideCategories&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;InsideCategories&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Category&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;InsideCategories&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Items&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;字段InsideTrackCategories是Lookup类型，并且允许有多个值，当有多个值存在时，SharePoint中用分号进行分隔。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里记录一些有关SharePoint客户端对象模型应用方面的文章，方便以后查阅：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/ee857094.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ee857094.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee956524.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee956524.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://blog.csdn.net/lgm97/article/details/6455361"&gt;http://blog.csdn.net/lgm97/article/details/6455361&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://ranaictiu-technicalblog.blogspot.com/2010/03/sharepoint-2010-manage.html"&gt;http://ranaictiu-technicalblog.blogspot.com/2010/03/sharepoint-2010-manage.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2011/01/18/1937884.html"&gt;http://www.cnblogs.com/Sunmoonfire/archive/2011/01/18/1937884.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2267572.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/11/29/2267572.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/11/28/2265868.html</id><title type="text">在XSLT中对for-each语句使用distinct操作</title><summary type="text">本文介绍了如何对XSLT的for-each元素进行distinct操作以去除重复的节点，并给出一个实际的例子讲解了如何实现按组输出XML节点的内容。</summary><published>2011-11-28T03:21:00Z</published><updated>2011-11-28T03:21:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/11/28/2265868.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/11/28/2265868.html"/><content type="html">&lt;p&gt;XSLT用来解析XML文档并按照规定的样式输出数据。在XSLT中，我们通常使用&lt;a href="http://www.w3school.com.cn/xsl/xsl_for_each.asp"&gt;for-each&lt;/a&gt;元素来遍历XML中的循环节点并输出内容，for-each元素允许你对要遍历的节点进行排序，参考文章&amp;ldquo;&lt;a href="http://www.cnblogs.com/jaxu/archive/2010/04/01/1702075.html"&gt;xslt中的for-each排序&lt;/a&gt;&amp;rdquo;。可是，如何在使用for-each元素时对要遍历的节点进行distinct操作以消除重复节点呢？先看下面的XML片段：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;addresses&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;FL&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;GA&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;MN&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;FL&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;addresses&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;如何编写XSLT代码让其输出为下面的内容？&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;states&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;FL&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;GA&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;MN&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;states&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;注意，上面的XML片段中，节点&amp;lt;address/&amp;gt;为重复节点，并且子节点&amp;lt;state/&amp;gt;存在重复的值，在输出的内容中将去掉这些具有重复节点。我们可以定义一个&lt;a href="http://www.w3school.com.cn/xsl/el_key.asp"&gt;Key&lt;/a&gt;元素：&amp;nbsp;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:key&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=&amp;rdquo;distinctState&amp;rdquo;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=&amp;rdquo;addresses/address&amp;rdquo;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;use&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=&amp;rdquo;./state&amp;rdquo;&amp;gt;&amp;lt;/xsl:key&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;Key元素必须定义在元素xsl:template的外面，与元素xsl:template平级。在上面的key元素中，我们将key应用到addresses/address节点上，并规定该key的表达式为节点state的值。函数&lt;a href="http://www.w3school.com.cn/xsl/func_generateid.asp"&gt;generate-id()&lt;/a&gt;用于返回唯一标识指定节点的字符串值。然后，我们在for-each元素中这样使用：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:key&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="distinctState"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="addresses/address"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;use&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="./state"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:key&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&#xD;
&lt;div&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;states&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="addresses/address[generate-id()&amp;nbsp;=&amp;nbsp;generate-id(key('distinctState',&amp;nbsp;./state))]"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="./state"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;state&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;states&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;key元素的表达式中也可以使用函数来进行更加精确的匹配，如：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:key&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="distinctState"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/Customers/Customer"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;use&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="substring(Address,&amp;nbsp;string-length(Address)-1)"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:key&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Customers/Customer[generate-id()&amp;nbsp;=&amp;nbsp;generate-id(key('distinctState',&amp;nbsp;substring(Address,&amp;nbsp;(string-length(Address)-1))))]"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:call-template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AggregateForState"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="state"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="substring(Address,&amp;nbsp;(string-length(Address)-1))"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:call-template&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;在看一个复杂点的例子，对XML元素进行分组输出：&amp;nbsp;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;items&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name1&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group1&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name2&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group1&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name3&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group2&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name4&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group2&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name5&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group2&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name6&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group1&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name7&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group3&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name8&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group3&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name9&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group4&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;name10&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;group1&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;items&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;我们希望编写XSLT将上面的XML解析成下面的样子：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p align="center"&gt;&lt;img style="width: 277px; height: 341px;" src="http://images.cnblogs.com/cnblogs_com/jaxu/2011112801.JPG" alt="" width="277" height="341" border="0" /&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;完整的XSLT代码如下：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml&amp;nbsp;version="1.0"&amp;nbsp;encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:stylesheet&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1.0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;xmlns:xsl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://www.w3.org/1999/XSL/Transform"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:msxsl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="urn:schemas-microsoft-com:xslt"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;exclude-result-prefixes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="msxsl"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:output&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;method&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="html"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;indent&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="yes"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;omit-xml-declaration&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="yes"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:key&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="distinctState"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="items/item"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;use&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="./group"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;match&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="tabStr"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="items/item[generate-id()=generate-id(key('distinctState',&amp;nbsp;./group))]"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="./group"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:if&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;test&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="position()!=last()"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;|&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:if&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tabStr:&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$tabStr"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="items/item[generate-id()=generate-id(key('distinctState',&amp;nbsp;./group))]"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="tabName"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:call-template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="output-tokens"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="list"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$tabStr"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="separator"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;|&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="pos"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="position()"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:call-template&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$tabName"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;hr&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="//items/item"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:if&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;test&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="./group&amp;nbsp;=&amp;nbsp;$tabName"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="name"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:if&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;br&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:for-each&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="output-tokens"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="list"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="separator"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="pos"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="newlist"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="concat(normalize-space($list),&amp;nbsp;$separator)"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="first"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="substring-before($newlist,&amp;nbsp;$separator)"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:variable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="remaining"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="substring-after($newlist,&amp;nbsp;$separator)"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:choose&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:when&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;test&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$pos&amp;nbsp;=&amp;nbsp;1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:value-of&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$first"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:when&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:otherwise&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:call-template&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="output-tokens"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="list"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$remaining"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="separator"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$separator"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:with-param&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="pos"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$pos&amp;nbsp;-&amp;nbsp;1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:call-template&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:otherwise&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:choose&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:template&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xsl:stylesheet&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p align="left"&gt;在上面的代码中，我们首先定义了元素key，并应用到节点items/item上，表达式为&amp;ldquo;./group&amp;rdquo;。变量tabStr用来存放以字符&amp;ldquo;|&amp;rdquo;分隔的group节点的值，并使用了distinct操作。接下来我们在页面上打印了变量tabStr的值。紧接着的for-each元素则将整个XML文档按照group分组进行输出。注意自定义的template &amp;ldquo;output-tokens&amp;rdquo;，在其中使用了一点技巧用来按不同的分组找出对应的分组名称，类似于C#中将字符串使用Split函数存放到数组中。有关output-tokens模板的技巧可以参考我的另一篇文章&amp;ldquo;&lt;a href="http://www.cnblogs.com/jaxu/archive/2009/11/16/1603756.html"&gt;在xslt中实现split方法对查询字符串进行分隔&lt;/a&gt;&amp;rdquo;。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;在XSLT的使用中有许多的技巧，灵活掌握这些技巧可以大大缩短我们的开发时间。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2265868.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/11/28/2265868.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/11/25/2263163.html</id><title type="text">如何对已经发布过的InfoPath模板进行修改</title><summary type="text">下载一个已经发布过的InfoPath模板文件（.xsn），如何修改设计并重新发布呢？如修改数据源的schema文件，所生成的XML文件中节点或属性的前缀等等。</summary><published>2011-11-25T06:44:00Z</published><updated>2011-11-25T06:44:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/11/25/2263163.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/11/25/2263163.html"/><content type="html">&lt;p&gt;设计完InfoPath模板之后，需要将其发布到一个公共的地方（如公共网络上），用户可以下载该模板填写内容然后生成固定格式的XML数据文件。一个复杂的InfoPath模板可以包含一个主数据源（Schema文件）或多个辅助数据源，并且其中还可能包括VSTA（Visual Studio Tools for Application）所生成的代码。InfoPath模板源文件和已经发布过的模板文件后缀相同（均为.xsn），但是对于一个已经发布过的InfoPath模板文件而言，由于缺少对应的源代码（包括原始schema文件、辅助数据源文件、VSTA源代码等等），我们很难对其进行重新设计。有什么好的方法可以实现这一点呢？&lt;/p&gt;&#xD;
&lt;p&gt;答案是肯定的！&lt;/p&gt;&#xD;
&lt;p&gt;首先，在公共网络上找到已经发布过的InfoPath模板xsn文件并下载到本地。右键点击xsn文件选择Design，然后你可以重新对InfoPath模板的界面进行修改，但无法直接修改主数据源的schema。退出设计模式，将xsn文件的后缀直接改成cab，双击打开，你可以看到里面包含了许多你所需要的文件，包括manifest.xsf文件（InfoPath Form的定义文件），主数据源的schema文件，view1.xsl界面定义文件，template.xml，sampledata.xml，以及其它辅助数据源文件和第三方提供的控件，VBTA所编译的.dll文件等。&lt;/p&gt;&#xD;
&lt;p&gt;几乎所有的定义文件都能手动修改，你可以直接将cab文件中需要修改的文件拖放到其它位置手动进行修改，然后设计xsn文件重新指定这些修改过的文件。或者也可以将cab文件中所有的文件拖放到一个新的文件夹中，然后修改需要的文件，右键点击manifest.xsf文件，选择Design，将InfoPath另存为一个新的文件。注意，如果你重新定义过主数据源的schema文件，则需要在InfoPath设计中查看控件的绑定情况，确保所有的控件绑定是正确的。如果需要修改XML节点的前缀，则需要同时修改manifest.xsf，view1.xsl，template.xml和主数据源的schema文件。&lt;/p&gt;&#xD;
&lt;p&gt;在schema定义文件中，属性&lt;strong&gt;attributeFormDefault&lt;/strong&gt;规定了所生成的XML节点的属性是否必须定义前缀，值为unqualified不需要，值为qualified需要；属性&lt;strong&gt;elementFormDefault&lt;/strong&gt;规定了所生成的XML节点是否必须定义前缀，值为unqualified不需要，值为qualified需要。如下面的代码：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xs:schema&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;attributeFormDefault&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="unqualified"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;elementFormDefault&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="qualified" &lt;font color="#ff0000"&gt;targetNamespace&lt;/font&gt;&lt;span style="color: #0000ff"&gt;=&lt;font color="#0000ff"&gt;"&lt;/font&gt;&lt;font color="#0000ff"&gt;http://www.jaxu.com&lt;font color="#0000ff"&gt;"&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;xmlns:j&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&lt;font color="#0000ff"&gt;"&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;http://www.jaxu.com&lt;font color="#0000ff"&gt;"&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;xs:schema&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;属性targetNameSpace规定了所生成的XML节点或属性的前缀所对应的命名空间，该命名空间必须与后面指定的命名空间定义具有相同的URI。对于前缀的指定，在manifest.xsf，view1.xsl和template.xml文件中必须具有相同的URI。也就是说，如果你想要修改InfoPath所生成的XML文件中节点或属性的前缀，则这四个文件中的前缀定义均要修改成一致。&lt;/p&gt;&#xD;
&lt;p&gt;dll文件不能直接修改。不过你可以反编译并重新创建VSTA工程。&lt;/p&gt;&#xD;
&lt;p&gt;修改完后，重新打包并设计InfoPath文件，然后重新发布即完成了模板的更新。注意你可能需要重新为其指定签名。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2263163.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/11/25/2263163.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/11/21/2257483.html</id><title type="text">System.Globalization.CultureInfo.InvariantCulture在Silverlight程序中的作用</title><summary type="text">Silverlight应用程序可能会因客户端操作系统的区域设置而发生一些改变，例如特殊字符、货币数字、动作行为等等。使用System.Globalization.CultureInfo.InvariantCulture在Silverlight中可以去掉这种CultureInfo的依赖。</summary><published>2011-11-21T09:33:00Z</published><updated>2011-11-21T09:33:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/11/21/2257483.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/11/21/2257483.html"/><content type="html">&lt;p&gt;其实这个问题应该不是Silverlight本身的问题，但有的时候我们确实会遇到。例如我们在Silverlight程序中使用了一些特殊字符，这些字符可能会因操作系统的区域化设置而发生改变，例如货币符号$、￥等等。还有在程序中通过字符串格式化得到的货币数字，则可能因为操作系统的区域化设置而发生数量上的变化，如数字100，当操作系统的区域设置为中国和美国，则数额会不同。有时候可能还会遇到更加奇怪的问题，操作系统的区域化设置甚至会影响到Silverlight程序的行为，如动画、交互行为等等。&lt;/p&gt;&#xD;
&lt;p&gt;当你在Silverlight程序中遇到上述这些奇怪的问题时，如何应付呢？&lt;/p&gt;&#xD;
&lt;p&gt;其实很简单，问题的原因是因为Silverlight程序的CultureInfo依赖于操作系统的设置，你只需要在你的Silverlight应用程序中去掉这种依赖就可以了。看下面的代码：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #008080"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;App()&lt;br /&gt;&lt;span style="color: #008080"&gt;2&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080"&gt;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Startup&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Application_Startup;&lt;br /&gt;&lt;span style="color: #008080"&gt;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Exit&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Application_Exit;&lt;br /&gt;&lt;span style="color: #008080"&gt;5&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.UnhandledException&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Application_UnhandledException;&lt;br /&gt;&lt;span style="color: #008080"&gt;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-color: yellow"&gt;Thread.CurrentThread.CurrentCulture&amp;nbsp;=&amp;nbsp;System.Globalization.CultureInfo.InvariantCulture;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&lt;span style="color: #008080"&gt;8&lt;/span&gt;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;App是Silverlight程序的入口函数，第6行是为了去掉Silverlight程序的CultureInfo依赖。这样一来，不管客户端操作系统设置在什么样的区域，你的Silverlight应用程序都不会发生改变。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2257483.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/11/21/2257483.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/10/25/2223947.html</id><title type="text">ASP.NET页面借助IFrame提交表单数据所遇到的问题</title><summary type="text">在ASP.NET中借助IFrame提交表单数据。</summary><published>2011-10-25T07:30:00Z</published><updated>2011-10-25T07:30:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/10/25/2223947.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/10/25/2223947.html"/><content type="html">&lt;p&gt;&lt;span  style="white-space: pre; "&gt;	&lt;/span&gt;首先看下面的代码片段，我们希望用户在点击页面上的Button时首先将数据提交到指定的第三方页面，然后再执行后台的Page_Load事件。&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;iframe&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="WebGatewaySubmissionProcessor_IFrame"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="WebGatewaySubmissionProcessor_IFrame"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;style&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="display:&amp;nbsp;none;"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;iframe&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;form&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;onsubmit&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="javascript:if&amp;nbsp;(typeof&amp;nbsp;WebGatewayDoubleSubmission&amp;nbsp;!=&amp;nbsp;'undefined')&amp;nbsp;{WebGatewayDoubleSubmission(this);}"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Form1"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="page"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="BtnClientSend"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="server"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;nbsp; &amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="WebGatewayScript"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WebGatewayDoubleSubmission&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;(o)&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldAction&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;o.action;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldOnSubmit&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;o.onsubmit;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldTarget&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;o.target;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldMethod&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;o.method;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;iframeSubmisionTarget&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;document.getElementById(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;WebGatewaySubmissionProcessor_IFrame&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;);&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;submitPostIframeSubmission&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;()&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.action&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldAction;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.target&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldTarget;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.method&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldMethod;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.onsubmit&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;oldOnSubmit;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.submit();&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;iframeSubmisionTarget.onload&amp;nbsp;=&amp;nbsp;submitPostIframeSubmission;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;eventPush(iframeSubmisionTarget,&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;load&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;,&amp;nbsp;submitPostIframeSubmission);&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.action&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;http://webgateway.hostedmscrm.com/V2/formprocessor.aspx&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.target&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;WebGatewaySubmissionProcessor_IFrame&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.onsubmit&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.method&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;POST&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.submit();&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WebGatewaySubmission&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;(o)&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.action&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;http://webgateway.hostedmscrm.com/V2/formprocessor.aspx&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.method&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;POST&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;eventPush(obj,&amp;nbsp;event,&amp;nbsp;handler)&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;(obj.addEventListener)&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj.addEventListener(event,&amp;nbsp;handler,&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;else&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;(obj.attachEvent)&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj.attachEvent(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;on&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;event,&amp;nbsp;handler);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;form&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 21px; "&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space: pre; "&gt;	&lt;/span&gt;Form中的onsubmit事件在页面被提交时触发，此时首先执行WebGatewayDoubleSubmission脚本方法，在该方法中，将当前Form的action，onsubmit，target，method缓存到指定的变量中，然后将Form的action和target指向另一个页面进行提交，此时页面上的数据被Post到第三方页面。然后再使用页面上隐藏的IFrame来调用submitPostIframeSubmission方法，并将原先的Form进行提交。这里有一个问题，在上面的代码中有一行被注释掉了，原因就是直接使用IFrame的onload方法并不能触发该事件，从而导致submitPostIframeSubmission方法不能执行，页面的第二次提交不成功！使用eventPush方法可以有效地解决该问题。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space: pre; "&gt;	&lt;/span&gt;同时，在服务端的Page_Load事件中，需要使用IsPostBack来判断页面是否被提交了：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&#xD;
{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(Page.IsPostBack)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;TODO:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&#xD;
}&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;相关资料：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.4ucode.com/Study/Topic/1087401"&gt;http://www.4ucode.com/Study/Topic/1087401&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://wiki.operamasks.org/pages/viewpage.action?pageId=1835020"&gt;http://wiki.operamasks.org/pages/viewpage.action?pageId=1835020&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2223947.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/10/25/2223947.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/10/25/2223479.html</id><title type="text">如何在InfoPath2010中转换主数据源</title><summary type="text">在用InfoPath设计表单时如何定义主数据源的两种方法，以及一些使用和定义XSD结构文件的技巧。</summary><published>2011-10-25T03:08:00Z</published><updated>2011-10-25T03:08:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/10/25/2223479.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/10/25/2223479.html"/><content type="html">&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;使用过InfoPath2007的人应该都知道，我们在设计或编辑一个InfoPath表单时，除了可以在设计界面的同时构建主数据源外，还可以事先将编辑好的主数据源XSD文件导入到InfoPath中，然后根据数据源的结构来设计表单界面。下面是这两种方法的一些简单介绍：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;1. 在设计表单界面的同时构建主数据源&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053029166.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="2011-10-25 10-20-11" border="0" alt="2011-10-25 10-20-11" src="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053179356.png" width="492" height="299" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;打开InfoPath，在New菜单中选择Blank Form（界面和菜单的位置与InfoPath2007稍有不同）。InfoPath会打开一个空白的设计界面，你可以在里面任意设计界面布局和添加控件（InfoPath2010提供了一些现有的界面模板可以直接套用），在添加控件的同时InfoPath会同时为你生成对应的主数据源（在界面右边的Fields面板中）。这时的主数据源结构是可以手动编辑的，你可以修改主数据源中节点的名称和属性等，以及节点的位置。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053247084.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="2011-10-25 10-26-25" border="0" alt="2011-10-25 10-26-25" src="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053288560.png" width="644" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;2. 创建XSD文件并导入到InfoPath中 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;InfoPath的一个最主要的用途就是在线收集以固定格式定义的XML数据文件。我们将定义好的InfoPath模板发布到网络上的一个公共位置，用户下载并使用这个模板填写数据并最终生成对应格式的XML文件。既然InfoPath模板规定了最终要生成的XML文件的结构，那么我们在设计InfoPath模板之前便可以确定好XML的结构。XML的结构定义是由XSD文件来规定的，编写XSD文件的一个最简单的方法就是事先在Visual Studio中手动将XML结构编写好，然后在XML菜单中选择Create Schema，Visual Studio会自动为你生成对应的XSD文件。当然，你可能还需要知道一些有关XSD的知识以防在必要的时候手动修改XSD文件，例如让XSD的结构在InfoPath中支持Rich TextBox控件，以及支持InfoPath的循环节点等。有关如何定义XSD文件，可以参考&lt;a href="http://www.w3school.com.cn/index.html"&gt;W3school&lt;/a&gt;的&lt;a href="http://www.w3school.com.cn/schema/index.asp"&gt;Schema教程&lt;/a&gt;。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053321497.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="2011-10-25 10-38-04" border="0" alt="2011-10-25 10-38-04" src="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053469329.png" width="273" height="132" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;然后我们将定义好的XSD文件导入到InfoPath中。在InfoPath2007中，我们通过Tools菜单的Convert Main Data Source&amp;#8230;菜单导入XSD文件，如下图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251053508711.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="2011-10-25 9-43-30" border="0" alt="2011-10-25 9-43-30" src="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251054206931.png" width="340" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;但是在InfoPath2010中，没有Tools菜单，那又该如何执行该操作呢？InfoPath2010中，在Data菜单下可以找到Refresh Fields，该菜单的功能既是InfoPath2007中的Convert Main Data Source菜单的功能。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251054267558.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="2011-10-25 10-48-26" border="0" alt="2011-10-25 10-48-26" src="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110251054323693.png" width="307" height="109" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;注意，使用XSD文件作为数据源导入到InfoPath之后，不能再在InfoPath中修改该主数据源的结构，如要修改主数据源的结构，必须修改原始的XSD文件然后再重新导入。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在XSD中将节点定义为支持InfoPath的Rich TextBox控件：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:element&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="content"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:complexType&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;mixed&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:any&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;namespace&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;processContents&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="lax"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;minOccurs&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="0"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;maxOccurs&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="unbounded"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:sequence&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:complexType&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 21px; "&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:element&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;在XSD中将节点定义为支持InfoPath的循环Section：&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:element&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="segment"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;maxOccurs&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="unbounded"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;minOccurs&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="0"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;maxOccues=unbounded表示循环没有上限（即可以在InfoPath中无限添加该节点） ；minOccurs=0允许没有该节点，如果值为1则表示该节点最少出现次数为1。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2223479.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/10/25/2223479.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jaxu/archive/2011/10/04/2198752.html</id><title type="text">通过XmlNodeType.ProcessingInstruction属性获取到InfoPath XML文件头信息</title><summary type="text">在SharePoint中，很多地方使用InfoPath Form来收集XML数据文件，当需要批量上传InfoPath XML文件时，修改文件头信息是必要的步骤。本文介绍了如何在XDocument对象中找出对应于InfoPath XML文件头信息的节点，并替换其中的部分内容。</summary><published>2011-10-03T18:21:00Z</published><updated>2011-10-03T18:21:00Z</updated><author><name>Jaxu</name><uri>http://www.cnblogs.com/jaxu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jaxu/archive/2011/10/04/2198752.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jaxu/archive/2011/10/04/2198752.html"/><content type="html">&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;通过InfoPath Form生成的XML文件在文件开头的地方都会附加上一段特定的信息，用于标识该XML文件是由什么版本的InfoPath Form生成的，所对应的XSN模板的存放位置等信息，如下图所示：  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/jaxu/201110/201110040158109967.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="20111004_1" border="0" alt="20111004_1" src="http://images.cnblogs.com/cnblogs_com/jaxu/201110/20111004015824956.jpg" width="644" height="283" /&gt;&lt;/a&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;那么我们在使用XDocument.Load()方法加载该XML文件之后，如何获取到文件头中相关的节点信息呢？如mso-infoPathSolution。&lt;/p&gt;&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;在XmlNodeType类型中，ProcessingInstruction申明了类似于&amp;#8220;&amp;lt;?pi test?&amp;gt;&amp;#8221;&amp;nbsp;的节点，我们可以通过该属性来筛选XML的节点，下面的函数用于找出InfoPath Form XML文件中的文件头信息，并将mso-infoPathSolution节点中的href属性值做修改，将XSN模板的位置修改成别的服务器中对应的位置。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Replace&amp;nbsp;the&amp;nbsp;reference&amp;nbsp;url&amp;nbsp;with&amp;nbsp;the&amp;nbsp;target&amp;nbsp;server&amp;nbsp;name&amp;nbsp;for&amp;nbsp;each&amp;nbsp;InfoPath&amp;nbsp;xml&amp;nbsp;file.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="path"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param&amp;nbsp;name="targetServer"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;ReplaceReferenceUrl(&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;path,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;targetServer)&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;pattern&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;href=\"http://.*?/&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Regular&amp;nbsp;expression&amp;nbsp;used&amp;nbsp;for&amp;nbsp;replacing&amp;nbsp;the&amp;nbsp;reference&amp;nbsp;url&amp;nbsp;in&amp;nbsp;the&amp;nbsp;XML&amp;nbsp;files.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DirectoryInfo&amp;nbsp;info&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;DirectoryInfo(path);&lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInfo[]&amp;nbsp;files&amp;nbsp;=&amp;nbsp;info.GetFiles(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;*.xml&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&amp;nbsp;(FileInfo&amp;nbsp;file&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;files)&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XDocument&amp;nbsp;document&amp;nbsp;=&amp;nbsp;XDocument.Load(file.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;XNode&amp;gt;&amp;nbsp;list&amp;nbsp;=&amp;nbsp;document.Nodes().Where(t&amp;nbsp;=&amp;gt;&amp;nbsp;t.NodeType&amp;nbsp;==&amp;nbsp;System.Xml.XmlNodeType.ProcessingInstruction).ToList&amp;lt;XNode&amp;gt;();&lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(list&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&amp;nbsp;(XNode&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;list)&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XProcessingInstruction&amp;nbsp;tmp&amp;nbsp;=&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;XProcessingInstruction;&lt;br /&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(tmp.Target.Equals(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;mso-infoPathSolution&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Regex&amp;nbsp;reg&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Regex(pattern);&lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp.Data&amp;nbsp;=&amp;nbsp;reg.Replace(tmp.Data,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;href=\"http://&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;targetServer&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.Save(file.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DirectoryInfo[]&amp;nbsp;direcotries&amp;nbsp;=&amp;nbsp;info.GetDirectories();&lt;br /&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&amp;nbsp;(DirectoryInfo&amp;nbsp;directory&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;direcotries)&lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReplaceReferenceUrl(directory.FullName,&amp;nbsp;targetServer);&lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span  style="white-space: pre; "&gt;	&lt;/span&gt;首先通过拉姆达表达式&amp;nbsp;找出所有ProcessingInstruction类型的节点，然后使用正则表达式替换href属性的值（注意只替换了其中ServerName的部分）。后面的递归调用表示该方法允许修改指定目录中所有的XML文件。&lt;/p&gt;&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;在SharePoint中，很多地方使用InfoPath Form来收集XML数据文件，当需要批量上传InfoPath XML文件时，修改文件头信息是必要的步骤，通过上面的函数，我们可以很简单地实现这一点！记录一下，以方便日后查阅。&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jaxu/aggbug/2198752.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jaxu/archive/2011/10/04/2198752.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
