??XmlTextWriter類
??用在本節的方法創立XML文件顯然並不艱苦。多年來,開發者都是透過在快取在連接一些字串,連接好以後再把快取中字串輸出到檔案的方法來創立XML文件。但是以這種方法創立XML文件的方法只有在你保證字串中不存在任何渺小的錯誤的時候才有效。 .NET Framework透過以XMLwriter供給了更好的創立XML文件的方法。
??XML Writer類別以只前(forward-only)的方法輸出XML資料到串流或檔案中。更重要的是,XML Writer在設計時就保證所有的XML資料都符合W3C XML 1.0推薦規範,你甚至不用擔心忘記寫閉標籤,由於XML Writer會幫你寫。 XmlWriter是所有 XML writer的抽象基底類別。 .NET Framework只供給唯一的一個writer 類別----XmlTextWriter類別。
??我們先來看看XML writers和舊的writers的不同點,下面的程式碼保留了一個string型的陣列:
StringBuilder sb = new StringBuilder('');
sb.Append('' );
foreach(string s in theArray) {
sb.Append('
sb.
sb.Append(s);
sb.
sb. ');
}
sb.Append('');
??程式碼透過循環取出資料中的元素,寫好標籤文字並把它們累加到一個string中。程式碼保證輸出的內容是格局良好的並且留心了新行的縮進,及支撐命名空間。當創立的文件結構比擬簡略時,這種方法可能不會有錯誤。然而,當你要支撐處理指令,命名空間,縮進,格局化以及實體的時候,程式碼的數目就成指數級增加,出錯的可能性也隨之增加。
??XML writer寫入方法效能對應每個可能的XML節點類型,它使創立xml文件的過程更符合邏輯、更少的信任於繁瑣的標記語言。圖六示範了怎麼樣用XmlTextWriter類別的方法來連接一個string資料。程式碼很簡潔,用XML writer的程式碼更輕易讀、結構更好。
Figure 6 Serializing a String Array
void CreateXmlFileUsingWriters(String[] theArray, string filename)
{
// Open the xml wpterpmmoed ter(filename, null );
xmlw.Formatting = Formatting.Indented;
xmlw.WriteStartDocument();
xmlw.WriteStartElementforsm');
xmlw.WriteStartElement ('element');
xmlw.WriteAttributeString('value', s);
xmlw.WriteEndElement();
}
xmlw.WriteEndDo提供);
xmlw .Close();
}
??然而XML writer並不是魔術師----它不能修復輸進的錯誤。 XML writer不會檢查元素名稱和屬性名稱是否有效,也不保證被使用的任何的Unicode字元集合適當前架構的編碼集。如上所述,為了避免輸出錯誤,必需要杜盡非XML字元。但是writer沒有供給這種方法。
??另外,當創立一個屬性節點時,Writer不會檢驗屬性節點的名稱是否與已存在的元素節點的名稱雷同。最後,XmlWriter類別不是一個帶有驗證的Writer類,也不保證輸出是否符合schema或DTD。在.NET Framework中帶驗證的writer類別目前來說還沒有供給。但是在我寫的《Applied XML Programming for Microsoft .NET (Microsoft Press®, 2002)》書中,我自己寫了一個帶有驗證的Writer組件。你可以到下面的網址往下載原始碼:http://www.microsoft.com/MSPress/books/6235.asp.
??圖七列出了XML writer的一些狀態值(state)。這些值都源自於WriteState枚舉類別。當你創立一個Writer,它的初始狀態為Start,表現你將要配置該對象,實際上writer沒有開端。下一個狀態是Prolog,該狀態是當你呼叫WriteStartDocument方法開端工作的時候設定的。然後,狀態的轉換就取決於你的寫的文檔及文檔的內容了。 Prolog狀態一直保留到當你增加一個非元素節點時,例如註解元素,處理指令及文件類型。當第一個節點也就是根節點寫完後,狀態就會變成Element。當你呼叫WriterStartAtribute方法時狀態轉換為Attribute,而不是當你呼叫WriteAtributeString方法寫屬性時轉換為該狀態。假如那樣的話,狀態就該是Element。當你寫一個閉標籤(>)時,狀態會轉換成Content。當你寫完文件後,呼叫WriteEndDocument方法,狀態就會回傳為Start,直到你開端寫另一個文件或把Writer關掉。
以上就是在.NET Framework中輕鬆處理XML資料(4-1) 的內容,更多相關內容請關注PHP中文網(www.php.cn)!

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

Java代碼在不同平台上運行時會有性能差異。 1)JVM的實現和優化策略不同,如OracleJDK和OpenJDK。 2)操作系統的特性,如內存管理和線程調度,也會影響性能。 3)可以通過選擇合適的JVM、調整JVM參數和代碼優化來提升性能。

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑戰WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”

PlatformIndependendecealLowsProgramStormonanyPlograwsStormanyPlatFormWithOutModification,而LileCross-PlatFormDevelopmentRequiredquiresMomePlatform-specificAdjustments.platFormIndependence,EneblesuniveByjava,EnablesuniversUniversAleversalexecutionbutmayCotutionButMayComproMisePerformance.cross.cross.cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具