亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

服務器端C#實現的CSS解析器

2020-01-24 03:47:33
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

using System;
using System.Collections;
using System.Text;
using System.IO;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
using System.Diagnostics;

namespace CSS
{
public class App
{
public static void Main(string[] args)
{
//初始化CSS解析器
CssDocument doc = new CssDocument();
//加載現有CSS文件
doc.Load(Directory.GetCurrentDirectory() + "/test.css");
//修改CSS
doc["body"].Attributes["font-size"] = "12px";
//保存CSS文件
doc.Save(Directory.GetCurrentDirectory() + "/a.css");
Console.Read();
}
}

public class CssParse
{
private string m_source;
private int m_idx;


public static bool IsWhiteSpace(char ch)
{
return( "/t/n/r ".IndexOf(ch) != -1 );
}

public void EatWhiteSpace()
{
while ( !Eof() )
{
if ( !IsWhiteSpace(GetCurrentChar()) )
return;
m_idx++;
}
}

public bool Eof()
{
return(m_idx>=m_source.Length );
}

public string ParseElementName()
{
StringBuilder element = new StringBuilder();
EatWhiteSpace();
while ( !Eof() )
{
if (GetCurrentChar()=='{')
{
m_idx++;
break;
}
element.Append(GetCurrentChar());
m_idx++;
}

EatWhiteSpace();
return element.ToString().Trim();
}

public string ParseAttributeName()
{
StringBuilder attribute = new StringBuilder();
EatWhiteSpace();

while ( !Eof() )
{
if (GetCurrentChar()==':')
{
m_idx++;
break;
}
attribute.Append(GetCurrentChar());
m_idx++;
}

EatWhiteSpace();
return attribute.ToString().Trim();
}

public string ParseAttributeValue()
{
StringBuilder attribute = new StringBuilder();
EatWhiteSpace();
while ( !Eof() )
{
if (GetCurrentChar()==';')
{
m_idx++;
break;
}
attribute.Append(GetCurrentChar());
m_idx++;
}

EatWhiteSpace();
return attribute.ToString().Trim();
}

public char GetCurrentChar()
{
return GetCurrentChar(0);
}

public char GetCurrentChar(int peek)
{
if( (m_idx+peek)<m_source.Length )
return m_source[m_idx+peek];
else
return (char)0;
}

public char AdvanceCurrentChar()
{
return m_source[m_idx++];
}

public void Advance()
{
m_idx++;
}

public string Source
{
get
{
return m_source;
}

set
{
m_source = value;
}
}

public ArrayList Parse()
{
ArrayList elements = new ArrayList();

while (!Eof())
{
string elementName = ParseElementName();

if (elementName == null)
break;

CssElement element = new CssElement(elementName);

string name = ParseAttributeName();
string value = ParseAttributeValue();

while (name != null && value != null)
{
element.Add(name, value);

EatWhiteSpace();

if (GetCurrentChar()=='}')
{
m_idx++;
break;
}

name = ParseAttributeName();
value = ParseAttributeValue();
}

elements.Add(element);
}

return elements;
}
}

public class CssDocument
{
private string _Text;
public string Text
{
get
{
return _Text;
}
set
{
_Text = value;
}
}

private ArrayList _Elements;
public ArrayList Elements
{
get
{
return _Elements;
}
set
{
_Elements = value;
}
}

public CssElement this[string name]
{
get
{
for (int i = 0; i < Elements.Count; i++)
{
if (((CssElement)Elements[i]).Name.Equals(name))
return (CssElement)Elements[i];
}

return null;
}
}

private string _File;
public string File
{
get
{
return _File;
}
set
{
_File = value;
}
}

public CssDocument()
{

}

public void Load(string file)
{
using (StreamReader sr = new StreamReader(file))
{
Text = sr.ReadToEnd();
sr.Close();
}

CssParse parse = new CssParse();
parse.Source = Regex.Replace(Text, @"http://*.*?/*/", "", RegexOptions.Compiled);
Elements = parse.Parse();

}

public void Add(CssElement element)
{
Elements.Add(element);
}

public void Save()
{
Save(this.File);
}

public void Save(string file)
{
using (StreamWriter sw = new StreamWriter(file, false))
{
for (int i = 0; i < Elements.Count; i++)
{
CssElement element = (CssElement)Elements[i];
sw.WriteLine(element.Name + " {");
foreach (string name in element.Attributes.AllKeys)
{
sw.WriteLine("/t{0}:{1};", name, element.Attributes[name]);
}
sw.WriteLine("}");
}
sw.Flush();
sw.Close();
}
}
}

public class CssElement
{
private string _Name;
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}

private NameValueCollection _Attributes;
public NameValueCollection Attributes
{
get
{
return _Attributes;
}
set
{
_Attributes = value;
}
}

public CssElement(string name)
{
this.Name = name;
Attributes = new NameValueCollection();
}

public void Add(string attribute, string value)
{
Attributes[attribute] = value;
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91在线观看欧美日韩| 亚洲白拍色综合图区| 欧美日韩免费网站| 成人久久久久久久| 久久成人精品一区二区三区| 992tv在线成人免费观看| 国产日本欧美视频| 国内精品国产三级国产在线专| 亚洲精品白浆高清久久久久久| 日韩av在线网址| 国产一区二中文字幕在线看| 日韩在线观看免费高清| 91视频九色网站| 成人免费视频在线观看超级碰| 日本韩国在线不卡| 日韩风俗一区 二区| xxav国产精品美女主播| 欧美刺激性大交免费视频| 九九热这里只有精品6| 亚洲最新av在线| 色爱av美腿丝袜综合粉嫩av| 亚洲精品视频在线观看视频| 一区二区三区四区精品| 欧美日韩国产第一页| 97视频免费观看| 91在线|亚洲| 91av视频在线播放| 精品无人国产偷自产在线| 色樱桃影院亚洲精品影院| 国产精品第二页| 欧美日韩国产一区二区三区| 中文字幕亚洲图片| 97精品国产97久久久久久| 欧美黑人国产人伦爽爽爽| 亚洲视频电影图片偷拍一区| 欧美精品久久久久久久| 久久精品国产清自在天天线| 国产精品香蕉av| 自拍偷拍亚洲一区| 国产视频亚洲精品| 久久久久久一区二区三区| 中文字幕免费国产精品| 亚洲欧美成人在线| 久久久久中文字幕| 亚洲美女av黄| 一本大道亚洲视频| 国产精品对白刺激| 欧美日韩国产999| 91免费电影网站| 亚洲999一在线观看www| 国产精品欧美日韩一区二区| 在线不卡国产精品| 欧美做受高潮1| 日本最新高清不卡中文字幕| 精品香蕉在线观看视频一| 激情亚洲一区二区三区四区| 国产精品视频1区| 日韩电影中文 亚洲精品乱码| 中文字幕久精品免费视频| 亚洲综合第一页| 久久99国产精品久久久久久久久| 欧美高清视频免费观看| 国产精品视频久| 欧美亚洲国产精品| 国产成人极品视频| 亚洲a∨日韩av高清在线观看| 日韩久久免费电影| 久久色精品视频| 国产精品久久电影观看| 日韩欧美在线字幕| 成人免费视频网址| 中文字幕亚洲在线| 国产精品丝袜一区二区三区| 中日韩美女免费视频网站在线观看| 欧美日韩亚洲视频一区| 国产成人久久精品| 国产在线日韩在线| 欧美成aaa人片在线观看蜜臀| 在线视频一区二区| 在线看日韩欧美| 欧美性猛交xxxx富婆| 日韩av在线天堂网| 亚洲激情视频在线播放| xxxx性欧美| 久久精彩免费视频| 久热精品在线视频| 日韩欧美在线免费观看| 国产视频丨精品|在线观看| 日韩av男人的天堂| 91av视频在线观看| 亚洲xxx视频| 国产美女扒开尿口久久久| 欧美不卡视频一区发布| 国产噜噜噜噜久久久久久久久| 国产精品香蕉在线观看| 永久免费毛片在线播放不卡| 51久久精品夜色国产麻豆| 国产美女被下药99| 国产午夜精品视频免费不卡69堂| 中文字幕欧美精品在线| 日韩免费在线免费观看| 亚洲高清在线观看| 羞羞色国产精品| 一色桃子一区二区| 亚洲欧美国产va在线影院| 欧美视频专区一二在线观看| 国产精品影片在线观看| 亚洲成人精品视频在线观看| 国产专区精品视频| 亚洲毛片在线观看.| 久久久国产精品免费| 亚洲第一视频网| 日韩精品一区二区三区第95| 国产精品一区二区三区久久久| 国产精品爱啪在线线免费观看| 欧美有码在线观看视频| 2019亚洲日韩新视频| 久久精品国产v日韩v亚洲| 国产精品久久久久久久一区探花| 亚洲国产一区二区三区在线观看| 中文字幕亚洲一区二区三区| 欧美日韩一区二区免费在线观看| 国产久一一精品| 一区二区三区 在线观看视| 日本免费久久高清视频| 91精品久久久久久久久青青| 成人黄色免费片| 色爱av美腿丝袜综合粉嫩av| 欧美激情中文网| 亚洲毛片在线免费观看| 国产精品专区一| 欧美大秀在线观看| 91亚洲精品视频| 久久久久久久久国产| 九九精品视频在线观看| 清纯唯美日韩制服另类| 欧美激情视频网址| 一区二区三区亚洲| 97精品国产97久久久久久春色| 国产视频999| 狠狠爱在线视频一区| 亚洲色图17p| 欧美日韩国产精品一区二区三区四区| 日韩av理论片| 色悠久久久久综合先锋影音下载| 国产精品女人久久久久久| 色偷偷偷综合中文字幕;dd| 日韩国产精品亚洲а∨天堂免| 国产成人综合一区二区三区| 久久精品夜夜夜夜夜久久| 国外视频精品毛片| 久久久女女女女999久久| 国产亚洲成精品久久| 青草青草久热精品视频在线观看| 国产在线拍揄自揄视频不卡99| 日韩av手机在线| 久久久久久久久久久免费精品| 色婷婷成人综合| 日韩欧美一区视频| 91精品国产高清久久久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 丰满岳妇乱一区二区三区| 欧美人与性动交| 国产欧美日韩中文字幕在线|