2012-09-18 74 views
1

我有一個文檔中定義的以下XML元素:XAttribute包含編碼的HTML

<modelDef name="EmployeeOutput" description="Current Model Run output."> 
    <resultSet name="Values"> 
     <field name="Net P&amp;L Impact" typeName="Decimal" formatString="C2"/> 
    </resultSet> 
</modelDef> 

通知磁場元件上的name屬性。當我檢索它的值時,它會返回&符號,我想保留在xml中定義的編碼值。這是簡單的代碼,我用它來獲取屬性的值

field.Attribute("name").Value 

我怎樣才能確保我得到&放碼回,而不是實際的符號象徵?

謝謝!

+0

你爲什麼要這麼做?這沒有任何意義。 – svick

+0

我正在使用我已經給出的XML並將其放入另一個XML文檔,並且不能丟失屬性值的原始格式。最後你們是對的,我想要展示實際的&符號,但在這一點上,我不知道。 – Kevin

+0

然後創建其他XML文檔的代碼應該可以處理該問題。這裏沒有什麼可以丟失的,'&'在一個屬性中會被再次編碼爲'&'。 – svick

回答

1

事實上,「淨p &大號影響」 您在XML已經編碼的價值,因爲&amp;是一個符號的XML代碼。如果實際編碼應該是"Net P&amp;L Impact",那麼你需要改變你的XML:

<modelDef name="EmployeeOutput" description="Current Model Run output."> 
    <resultSet name="Values"> 
     <field name="Net P&amp;amp;L Impact" typeName="Decimal" formatString="C2"/> 
    </resultSet> 
</modelDef> 

然而,也很少遇到真實世界的實體在其名稱中&amp;。你爲什麼要以這種方式進行編碼?是因爲你輸出到HTML嗎?如果是這樣,請使用HttpUtility.HtmlEncode()作爲結果值,以便以HTML格式輸出。這是正確和安全的方式。不要指望你的XML解析代碼預測值將被輸出到的上下文。