2011-02-06 57 views
1

試圖將一些XML加載到一個文件:在XML轉義撇號屬性

<Custom AttributeA='' AttributeB='Bob' AttributeC='HUNTERS' COMPANY EMPLOYEES' 403B PLAN' /> 

然後當我嘗試將其添加到文檔:

我最終得到一個錯誤信息System.Xml.XmlException:'COMPANY'是一個意外的標記。預期的標記是'='。 AttributeC的值應該是:獵人的公司職員「403B計劃

我試圖加載XML之前替換」之前,但它代替所有的撇號的和AttributeA = ' '的同樣是無效的。

編輯:是的,我會同意形成不良,但這是我必須與之合作。

+0

看到我的回答有關逃跑。 – Daniel 2011-02-06 21:56:16

+0

我有一個邪惡的第三方DLL創建了這個XML,我無法控制。這個問題或多或少受到目前爲止人們告訴我的無效,在我修復(REPLACE)第三方方法之前,我將無法糾正我的情況。因爲當我不能關閉/刪除我自己的問題時:/ – 2011-02-06 21:59:39

回答

3

您可以使用

<Custom AttributeC="HUNTERS&apos; COMPANY EMPLOYEES'&apos; 403B PLAN"/> 

<Custom AttributeC="HUNTERS' COMPANY EMPLOYEES' 403B PLAN"/> 

甚至

<Custom AttributeC='HUNTERS&apos; COMPANY EMPLOYEES&apos; 403B PLAN'/> 
2

這段標記有許多問題。

這不是XML。 XML使用雙引號的屬性(好吧,我剛剛學到單引號也沒關係)。但它需要等於 - 屬性名稱和值之間的符號(請參閱您的最後一個屬性)。另外,屬性名稱不能包含空格,並且必須賦予一個值,這與HTML不同。

哦,如果沒有結束標記,則必須以/>結束行,而不僅僅是>

如果你想在你的屬性的撇號,您可以使用轉義,喜歡這裏:

<gangster name="George &quot;Shotgun&quot; Ziegler"> 

或用單引號(和轉義的單引號):

<ad text='I love McDonald&apos;s'> 

或者當您想在屬性中使用單引號時使用雙引號:

<ad text="I love McDonald's"> 
+0

我認爲它是,形成不良。 – 2011-02-06 21:43:36

0

attri不允許空格bute名字。您必須鍵入這樣的事情:

<Custom AttributeA='' AttributeB='Bob' AttributeC='HUNTERS&apos; COMPANY EMPLOYEES&apos; 403B PLAN'/> 
1

編碼撇號爲&apos;

<Custom AttributeA='' AttributeB='Bob' AttributeC='HUNTERS&apos; COMPANY EMPLOYEES&apos; 403B PLAN' />