簡體   English   中英

不區分大小寫的XML比較

[英]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.IsTrueString.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM