2015-11-04 57 views
0

我想從字符串中生成xml文件。一個元件在名稱和輸出的特殊字符應該是這樣的:使用特殊字符在Xml元素名稱

<Discount %>10</Discount %> 

我知道這是不允許的,但沒有「不允許」的意思,它是完全不可能的或者是它只是一個不好的做法?

如果可能我該如何實現它?

這裏是我的代碼

StringBuilder stringBuilder = new StringBuilder(); 
using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder)) 
{ 
    xmlWriter.WriteStartElement("Client"); 

    xmlWriter.WriteElementString("Discount %", client.DiscountPercent.ToString()); 

    xmlWriter.WriteEndElement(); 
    xmlWriter.Flush(); 

    XmlDocument outputXmlDocument = new XmlDocument(); 
    outputXmlDocument.LoadXml(stringBuilder.ToString()); // throws this: System.Xml.XmlException: expected '>' (3E) but found '%' (25) Line 1, position 618. 
    File.WriteAllText(path, outputXmlDocument.SelectSingleNode("Tables").OuterXml); 
} 
+1

這不是C#的問題。請檢查http://www.w3.org/TR/REC-xml/#NT-NameChar – qxg

+0

如果您不確定元素名稱是否有效,可以使用['XmlConvert.EncodeLocalName(string)'](https: //msdn.microsoft.com/en-us/library/system.xml.xmlconvert.encodelocalname%28v=vs.110%29.aspx)以確保名稱格式正確。 ['XmlConvert.DecodeName(string)'](https://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.decodename(v = vs.110).aspx)是相反的。 – dbc

+2

考慮使用屬性' 10' –

回答

1

元素名稱必須用一個詞。

和%應避免

考慮:

<Discount> 
<DiscountPercent> 
<Discount_Percent>