整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          C# 將HTML轉(zhuǎn)為XML

          入dll

          1.通過NuGet安裝dll(2種方法)

          1.1可以在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,點(diǎn)擊“安裝”。等待程序安裝完成。

          1.2將以下內(nèi)容復(fù)制到PM控制臺安裝:

          Install-Package FreeSpire.Doc -Version 10.2

          2.手動添加dll引用

          可通過手動下載包到本地,然后解壓,找到BIN文件夾下的Spire.Doc.dll。然后在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”,將本地路徑BIN文件夾下的dll文件添加引用至程序。


          將HTML轉(zhuǎn)為XML

          轉(zhuǎn)換時,可參考如下代碼來進(jìn)行:

          1. 創(chuàng)建Document類的對象。
          2. 調(diào)用Document.LoadFromFile(string fileName, FileFormat fileFormat)方法加載HTML文檔。
          3. 通過Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存為XML格式到指定路徑。

          C#

          using Spire.Doc;
          
          namespace HTMLtoXML
          {
              class Program
              {
                  static void Main(string[] args)
                  {
                      //創(chuàng)建Document類的對象
                      Document doc = new Document();
          
                      //加載html文件
                      doc.LoadFromFile("sample.html",FileFormat.Html);
          
                      //保存為XML格式
                      doc.SaveToFile("HTMLtoXML.xml", FileFormat.Xml);
                      System.Diagnostics.Process.Start("HTMLtoXML.xml");
                  }
              }
          }

          轉(zhuǎn)換效果:

          —End—

          SVG(Scalable Vector Graphics)是一種基于XML的2D矢量圖形格式,可以實(shí)現(xiàn)圖像的無損縮放和高清晰度顯示。在HTML中嵌入SVG圖像,可以使網(wǎng)頁更加生動有趣,提高用戶體驗(yàn)
          
          <svg width="54" height="54" class="c-nav--footer__svgicon c-slackhash" viewBox="0 0 54 54" xmlns="http://www.w3.org/2000/svg">
          <g fill="none" fill-rule="evenodd">
          <path d="M19.712.133a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386h5.376V5.52A5.381 5.381 0 0 0 19.712.133m0 14.365H5.376A5.381 5.381 0 0 0 0 19.884a5.381 5.381 0 0 0 5.376 5.387h14.336a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386" fill="#44BEDF">
          </path>
          <path d="M53.76 19.884a5.381 5.381 0 0 0-5.376-5.386 5.381 5.381 0 0 0-5.376 5.386v5.387h5.376a5.381 5.381 0 0 0 5.376-5.387m-14.336 0V5.52A5.381 5.381 0 0 0 34.048.133a5.381 5.381 0 0 0-5.376 5.387v14.364a5.381 5.381 0 0 0 5.376 5.387 5.381 5.381 0 0 0 5.376-5.387" fill="#2EB67D">
          </path>
          <path d="M34.048 54a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386h-5.376v5.386A5.381 5.381 0 0 0 34.048 54m0-14.365h14.336a5.381 5.381 0 0 0 5.376-5.386 5.381 5.381 0 0 0-5.376-5.387H34.048a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386" fill="#ECB22E">
          </path>
          <path d="M0 34.249a5.381 5.381 0 0 0 5.376 5.386 5.381 5.381 0 0 0 5.376-5.386v-5.387H5.376A5.381 5.381 0 0 0 0 34.25m14.336-.001v14.364A5.381 5.381 0 0 0 19.712 54a5.381 5.381 0 0 0 5.376-5.387V34.25a5.381 5.381 0 0 0-5.376-5.387 5.381 5.381 0 0 0-5.376 5.387" fill="#E01E5A">
          </path>
          </g>
          </svg>
          

          用XMLSpy編輯與約束XML文件操作

          一、XML文件介紹

          可擴(kuò)展標(biāo)記語言,標(biāo)準(zhǔn)通用標(biāo)記語言的子集,簡稱XML。是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。

          XML文件格式是純文本格式,在許多方面類似于HTML,XML由XML元素組成,每個XML元素包括一個開始標(biāo)記(<title>),一個結(jié)束標(biāo)記(</title>)以及兩個標(biāo)記之間的內(nèi)容,例如,可以將XML元素標(biāo)記為價格、訂單編號或名稱。標(biāo)記是對文檔存儲格式和邏輯結(jié)構(gòu)的描述。在形式上,標(biāo)記中可能包括注釋、引用、字符數(shù)據(jù)段、起始標(biāo)記、結(jié)束標(biāo)記、空元素、文檔類型聲明( DTD)和序言。

          XML文件的作用是可以定義數(shù)據(jù)交流的標(biāo)準(zhǔn)或系統(tǒng)配置參數(shù),有一段時間預(yù)測是可以替代HTML的標(biāo)簽語言,但是后來發(fā)展不理想,沒有成為HTML網(wǎng)頁的替代方案。但是XML文件在數(shù)據(jù)交流中還是非常有用的,尤其是在進(jìn)行數(shù)據(jù)交流標(biāo)準(zhǔn)的定義中,不同用戶按事先約定好的XML標(biāo)簽格式傳遞數(shù)據(jù),雙方就可以交流數(shù)據(jù)。其規(guī)范性要強(qiáng)于json文件格式

          具體規(guī)則如下:

          1、必須有聲明語句。

          XML聲明是XML文檔的第一句,其格式如下:

          <?xml version="1.0" encoding="utf-8"?>

          2、注意大小寫

          在XML文檔中,大小寫是有區(qū)別的。"<P>"和"<p>"是不同的標(biāo)記。注意在寫元素時,前后標(biāo)記的大小寫要保持一致。

          3、XML文檔有且只有一個根元素

          XML文檔必須有一個根元素,就是緊接著聲明后面建立的第一個元素,其他元素都是這個根元素的子元素,根元素完全包括文檔中其他所有的元素。根元素的起始標(biāo)記要放在所有其他元素的起始標(biāo)記之前;根元素的結(jié)束標(biāo)記要放在所有其他元素的結(jié)束標(biāo)記之后。例如

          <?xml version="1.0" encoding="utf-8"?>
          <data>
                   XXXXXX
          </data>

          4、屬性值使用引號

          在HTML代碼里面,屬性值可以加引號,也可以不加。但是XML規(guī)定,所有屬性值必須加引號(可以是單引號,也可以是雙引號,建議使用雙引號),否則將被視為錯誤。

          <?xml version="1.0" encoding="utf-8"?>
          		<data name="school_data">
          					XXXXXX
          		</data>

          5、所有的標(biāo)記必須有相應(yīng)的結(jié)束標(biāo)記

          在HTML中,標(biāo)記可以不成對出現(xiàn),而在XML中,所有標(biāo)記必須成對出現(xiàn),有一個開始標(biāo)記,就必須有一個結(jié)束標(biāo)記,否則將被視為錯誤。

          <?xml version="1.0" encoding="utf-8"?>
          <data name=”school_data”>
          	<school name=”ncist”>
          		<myclass name="計(jì)算機(jī)B191">
                      <student id="001">
                          <realname>張一</realname>
                          <sex>男</sex>
                          <age>21</age>
                      </student>
                  </myclass>
          	</school>
          	<school name=”pku”>
          		<myclass name="物聯(lián)網(wǎng)B191">
                      <student id="001">
                          <realname>王一</realname>
                          <sex>女</sex>
                          <age>19</age>
                      </student>
                  </myclass>
          	</school>
          </data>
          

          6、所有的空標(biāo)記也必須被關(guān)閉

          空標(biāo)記是指標(biāo)記對之間沒有內(nèi)容的標(biāo)記,比如"<img></img>"等標(biāo)記。在XML中,規(guī)定所有的標(biāo)記必須有結(jié)束標(biāo)記。

          二、XMLSpy軟件介紹

          XMLSpy 是來自Altova的一款方便實(shí)用,功能強(qiáng)大的XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)編輯器。軟件支持WYSWYG,支持Unicode、多字符集,支持Well-formed和Validated兩種類型的XML文檔,支持NewsML等多種標(biāo)準(zhǔn)XML文檔的編輯,軟件在原來的基礎(chǔ)上增加了幾個很有用的功能,會讓XML代碼的處理更容易,是J2EE,.NET和數(shù)據(jù)庫開發(fā)人員不可缺少的高性能的開發(fā)工具。網(wǎng)上搜索需要的版本安裝就可以了。

          XMLSpy 軟件界面

          XMLSpy 編輯界面

          三、利用XMLSpy軟件編輯XML文件

          1、建立一個XML樣例文件

          首先利用任意文本編輯器,建立一個普通的XML文件,里面含有基本的XML數(shù)據(jù)結(jié)構(gòu)。

          <?xml version="1.0" encoding="UTF-8" ?>
          <data>
              <school name="ncist001">
                  <myclass name="計(jì)算機(jī)001">
                      <student id="001">
                          <realname>張一</realname>
                          <sex>男</sex>
                          <age>21</age>
                      </student>
                  </myclass>
              </school>
          </data>
          

          2、利用XMLSpy軟件生成約束文件

          利用XMLSpy軟件打開此文件,分析生成約束XSD文件。這步很關(guān)鍵。會提示是否應(yīng)用約束等,基本都是默認(rèn)確認(rèn)就可以了。軟件自動在XML文件中建立約束的語句。這種方法可以快速生成約束文件,在此基礎(chǔ)上進(jìn)行修改,能夠快速完成約束文件的生成。

          帶有約束的XML文件

          生成約束文件

          xsd約束文件

          3、修改約束文件xsd

          軟件自動生成了約束文件xsd,但是這個約束文件有問題。主要是它采用扁平化方法,描述各個元素的層級關(guān)系。所謂扁平化描述,就是指描述本層和它所包含的下一層的元素。

          注意點(diǎn):

          1  data是根目錄,它只描述的data的類型,和含有的下一級子元素。具體下一級子元素的詳細(xì)描述,又采用扁平化方法在下面描述了

          2  在描述中,元素的屬性數(shù)據(jù)類型都進(jìn)行了約束,問題在于后面采用枚舉,限定的數(shù)據(jù)內(nèi)容,因此需要把枚舉的內(nèi)容刪除掉。

          3  在元素的描述中,沒有限定數(shù)據(jù)數(shù)量,默認(rèn)就是1個。應(yīng)該添加不限定。方法是自己寫,或者在添加一個元素,然后再生成約束文件,分析文件就可以了。

          xsd約束文件

          4、XML可視化

          XMLSpy軟件提供了一種可視化結(jié)構(gòu)展示,非常方便查看自己的XML約束條件。

          xml可視化

          5、約束文件地址修改

          XML文件中引用的約束文件為絕對地址,不適合發(fā)布使用。把它修改為相對地址,xml和xsd文件在同一個文件夾中。

          xsd地址

          6、約束檢查

          XML約束檢查,如果是用XMLSpy軟件,如果有問題,會報(bào)錯,不讓保存。根據(jù)提示錯誤,可以修改xsd文件或者XML文件

          約束檢查結(jié)果

          四、pycharm軟件中生成約束xsd文件

          利用pycharm也可以生成XSD文件,但是文件的描述感覺沒有XMLSpy軟件描述的清晰,如下圖,不適用。Pycharm不能進(jìn)行XML規(guī)則檢查。

          pycharm編輯xml

          xml文件

          五、Python讀寫XML文件

          常見的 XML 編程接口有 DOM 和 SAX,這兩種接口處理 XML 文件的方式不同,當(dāng)然使用場合也不同。

          Python 有三種方法解析 XML,就是SAX,DOM,以及 ElementTree。

          1.SAX (simple API for XML )

          Python 標(biāo)準(zhǔn)庫包含 SAX 解析器,SAX 用事件驅(qū)動模型,通過在解析XML的過程中觸發(fā)一個個的事件并調(diào)用用戶定義的回調(diào)函數(shù)來處理XML文件。

          2.DOM(Document Object Model)

          將 XML 數(shù)據(jù)在內(nèi)存中解析成一個樹,通過對樹的操作來操作XML。

          3.ElementTree(元素樹)

          ElementTree就像一個輕量級的DOM,具有方便友好的API。代碼可用性好,速度快,消耗內(nèi)存少。

          注:因DOM需要將XML數(shù)據(jù)映射到內(nèi)存中的樹,一是比較慢,二是比較耗內(nèi)存,而SAX流式讀取XML文件,比較快,占用內(nèi)存少,但需要用戶實(shí)現(xiàn)回調(diào)函數(shù)(handler)。

          代碼如下:


          主站蜘蛛池模板: 亚洲日韩国产一区二区三区 | 春暖花开亚洲性无区一区二区| 美女视频一区三区网站在线观看| 色一情一乱一伦一区二区三欧美| 久久久久人妻一区精品果冻| 亚拍精品一区二区三区| 乱人伦一区二区三区| 精品无码一区二区三区爱欲| 精品一区二区三区在线观看| 在线观看精品视频一区二区三区| 亚洲午夜福利AV一区二区无码| 国产激情一区二区三区四区| 中文字幕av人妻少妇一区二区| 久久精品无码一区二区三区| 国产精品一区三区| 国产一区二区三区樱花动漫| 亚洲高清一区二区三区电影 | 亚洲视频一区二区三区四区| 综合久久一区二区三区| 精品国产一区二区三区AV性色 | 亚洲国产一区在线观看| 无码精品人妻一区二区三区中| 狠狠色成人一区二区三区| 久久精品中文字幕一区| 国产福利电影一区二区三区久久久久成人精品综合 | aⅴ一区二区三区无卡无码| 视频一区二区中文字幕| 四虎一区二区成人免费影院网址| 精品国产日韩一区三区| 国产精品盗摄一区二区在线| 国产精品一区二区香蕉| 制服美女视频一区| 亚洲一区无码精品色| 国产综合无码一区二区三区| 成人区人妻精品一区二区不卡视频| 精品人妻少妇一区二区三区| 韩日午夜在线资源一区二区 | 日韩一区二区a片免费观看| 国产精品高清视亚洲一区二区| 爆乳无码AV一区二区三区| 国产一区二区三区在线|