XElement.Parse和属性中的特殊字符

时间:2017-12-13 16:22:46

标签: c# xml linq

我有一个包含xml的字符串,例如:

<Person Name="Molly O&apos;Mahony" />

我想将此转换为XElement,维护& apos ;而不将其转换为&#39;

使用

XElement.Parse(string);

创建元素<Person Name="Molly O'Mahony" /> 这可能吗?

1 个答案:

答案 0 :(得分:0)

我们走了:

var txt = "<Person Name=\"Molly O&apos;Mahony\" />";

var e  = XElement.Parse(txt, LoadOptions.SetLineInfo);
var li = (IXmlLineInfo) e.Attribute("Name");

// li.LinePosition points to first char of the attribute: Name="Molly O&apos;Mahony"
//                                                        ^

var start = txt.IndexOf('"', li.LinePosition) + 1;  
var end   = txt.IndexOf('"', start);
var len   = end - start;

var attr  = txt.Substring(start, len); // Molly O&apos;Mahony

您可能需要调整代码以使其适用于多行文字。

相关问题