Ну, если этот материал не очень хорошо образован, то не следует ожидать, чтобы иметь возможность рассматривать его как XML. Таким образом, если вы хотите поместить неправильно сформированную разметку HTML в элемент XML, тогда рассмотрите использование раздела CDATA, например.
string value = "Steet,<BR> </BR> City";
XElement address = new XElement("Address", new XCData(value));
, что приведет к
<Address><![CDATA[Steet,<BR> </BR> City]]></Address>
Если вы хотите, чтобы разобрать значение как XML, то сделать это с XmlReader в режиме фрагмента, например,
static void Main()
{
string value = "Steet,<BR> </BR> City";
XElement address = new XElement("Address", ParseFragment(value));
Console.WriteLine(address);
}
static IEnumerable<XNode> ParseFragment(string fragment)
{
using (StringReader sr = new StringReader(fragment))
{
using (XmlReader xr = XmlReader.Create(sr, new XmlReaderSettings() { ConformanceLevel = ConformanceLevel.Fragment }))
{
xr.Read();
XNode node;
while (!xr.EOF && (node = XNode.ReadFrom(xr)) != null)
{
yield return node;
}
}
}
}
Это приводит к
<Address>Steet,<BR> </BR> City</Address>
Спасибо Мартину. Поскольку я являюсь новым голосованием, я могу увеличить только на 1. Еще раз спасибо за пример. – dps123
Это фактически функционально идентично оригинальной версии. Не имеет значения, если вы избежите '<' с '<' или с CDATA. В любом случае, когда вы читаете значение узла «
» с синтаксическим анализатором XML, вы получите строку с буквальными скобками в ней. –Привет, Джоэл, Спасибо за ответ. Этот XML будет использоваться для создания PDF-файлов. Поэтому ребята, создающие PDF, ожидают теги, чтобы их можно было сопоставить с этим инструментом. Например, (
=> PDF Break) – dps123