2
我們必須將xml發送到一個黑盒處理器,它不能正確處理收縮的空元素,當然,我們不能直接更改。強制XDocument中的空元素展開
如果我們派:
<element />
我們得到的結果:
<element>\n</element>
這使得作爲
<element>
</element>
這使我們的客戶進程產生不良反應
我們應該(需要)得到的結果:
<element></element>
當我們送過來:作爲期望
<element></element>
的結果,所以我們需要發送
<element></element>
不
到黑匣子。
在檢查空元素的屬性,我們注意到,
<element />
註冊的isEmpty ==真而
<element></element>
註冊的isEmpty爲假,從而企圖破解我們是把這個循環:
foreach (XElement feature in _xDocument.Descendants("feature").Where(feature => feature.Element("expiry").IsEmpty))
{
feature.Element("expiry").Value = string.Empty;
}
而在調試中,我們確定isEmpty變成了錯誤,並且在調試環境發送到黑匣子時,一切都很順利,但是當我們部署到我們的開發服務器(當然還有測試和產品)時,我們最終仍然看到黑匣子的輸出,就好像標籤已經空了一樣。
我們如何強制XML文檔中的所有空元素始終呈現爲展開標籤?
這是對我們至關重要的錯誤修復 - 下游客戶受到負面影響。
非常感謝!
我要給延長XmlTextWriter的一個鏡頭 - 目前我們的代碼使用StringWriter的,但是這可能只是做的伎倆。 – 2011-06-10 18:52:48
希望這有助於! ;-) – danyolgiax 2011-06-10 19:02:48
由於我們在開發機器上實現的修補程序在開發服務器(或測試/產品)上不起作用,因此存在更多的不便之處。這項工作完美運行本地強制XML格式 - 不幸的是我們的黑匣子仍然表現不佳。我開始懷疑我在這裏解決了錯誤的問題,不過謝謝。 – 2011-06-10 19:20:24