[英]Make string comparison case-insensitive for .net winforms application
[英]Case-insensitive XML comparison
我有單元測試解決方案,基本上可以比較兩個差異軟件生成的兩個xml。
問題是,一個xml的2個值均為n小寫,而另一個的xml則為大寫,如下所示。
1
<IsMirrored>False</IsMirrored>
<IsVariable>True</IsVariable>
第2
<IsMirrored>false</IsMirrored>
<IsVariable>true</IsVariable>
我使用這種方法來比較xml:
Assert.AreEqual(originalDoc.OuterXml, newDoc.OuterXml);
但由於大小寫問題,在比較值時返回false。 我將如何忽略該案例問題,它僅比較價值?
編輯 :另一期
另一個問題是:如果有一個空元素:
第一:
<LinkedObjectName></LinkedObjectName>
第二名:
<LinkedObjectName />
如果我執行Assert.AreEqual,它將逐字符進行檢查,並在此處中斷。
我該如何處理?
不要使用Assert.AreEqual
,而要使用Assert.IsTrue
和String.Equals
Assert.IsTrue(
String.Equals(
originalDoc.OuterXml,
newDoc.OuterXml,
StringComparison.CurrentCultureIgnoreCase))
編輯:
為了更可靠地比較這兩個XML文檔,可以嘗試使用Microsoft的XML Diff and Patch Tool 。 該工具將嘗試確定XML文檔的內容是否等效,即使在簡單的字符串比較失敗的情況下(例如,節點或屬性的順序不同)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.