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);
}
这不是C#的问题。请检查http://www.w3.org/TR/REC-xml/#NT-NameChar – qxg
如果您不确定元素名称是否有效,可以使用['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
考虑使用属性' 10 ' –