【问题标题】:how does xelement handle special(xml) characters?xelement 如何处理特殊(xml)字符?
【发布时间】:2013-07-01 20:02:27
【问题描述】:

如果我声明一个新的 Xelement 并输入字符串,例如 address.line1 = "<address>" 以下语句将如何处理以下代码行中的特殊字符,例如 <, >,/?

XElement a = new XElement("address",
                     new XElement("addressline1", address.Addressline1),
                                 );

这会引发错误还是对用户输入的特殊字符进行编码?

【问题讨论】:

  • 非常(非常)容易找到。
  • @HenkHolterman 我的班级太大太复杂,无法测试这一刻:(
  • @FloodGravemind 然后得到一个 LinqPad 的副本,或者编写一个快速的控制台应用程序,或者一个单元测试:)
  • @DaveShaw 感谢 Dave 不知道这个工具。 +1
  • 您不了解控制台应用程序?

标签: c# xml asp.net-mvc linq


【解决方案1】:

答案:Xelement 对字符进行编码 测试代码

void Main()
{
string m = "<address/>";
XElement a = new XElement("address",
                         new XElement("addressline1",m)
                                      );
Console.WriteLine(a);
}

结果

<address>
       <addressline1>&lt;address/&gt;</addressline1>
       </address>

【讨论】:

  • 如果您运行一个很小的应用程序,您会发现它会将&amp;lt;、&amp;gt; 和&amp;amp; 分别转换为&amp;lt;、&amp;gt; 和&amp;amp;。此外,如果string is a valid content for an XElement object 会假设它会应用任何转换以确保它是合适的。顺便说一句,这与 XML 的 编码 无关。不要将标准 XML 实体和编码混为一谈。
  • @user7116 我正在尝试按照 DaveShaw 的建议使用 LinqPad。
猜你喜欢
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2011-07-14
相关资源
最近更新 更多