C# - Xmldocument vs xdocument Поведение на недействительным шестнадцатеричном характереC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# - Xmldocument vs xdocument Поведение на недействительным шестнадцатеричном характере

Сообщение Anonymous »

Мы получаем XML -документы, которые мы обрабатываем, используя Xdocument , но которые содержат экспрессии шестигранной сущности. Документы, вероятно, были созданы в процессе, вызывающем Xmldocument . Метод xdocument.parse () отклоняет эти документы.

Код: Выделить всё

XmlDocument
, кажется, обрабатывает с ними без жалоб - генерирование документов XML и кодирования кода управления.

Код: Выделить всё

XDocument
бросает исключение в обоих случаях.
Пример:

Код: Выделить всё

static void Main(string[] args)
{
string message = "Hello, \x1EWorld!"; // string with control code 1E encoded.

// This block completes - create an xml document incorporating the message string
XmlDocument xmlDoc = new XmlDocument();
XmlElement root = xmlDoc.CreateElement("greeting");
xmlDoc.AppendChild(root);
root.InnerText = message;
Console.WriteLine(xmlDoc.OuterXml);

// Outputs: Hello, World!

// This block fails - XDocument creation of document containing control-code character x1E
try
{
XDocument xdoc = new XDocument(
new XElement("greeting", message)
);
Console.WriteLine(xdoc.ToString());
}
catch (Exception ex)
{
Console.WriteLine($"XDocument creation error: {ex}");
}

// This block completes - XmlDocument load document containing an  entity expression
string xmlWithEscapedHexEntity = xmlDoc.OuterXml; // Hello, World!";
xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlWithEscapedHexEntity);
Console.WriteLine(xmlDoc.OuterXml);

// This block fails - XDocument parse document containing an  entity expression
try
{
XDocument xDoc = XDocument.Parse(xmlWithEscapedHexEntity);
Console.WriteLine(xDoc.ToString());
}
catch (Exception ex)
{
Console.WriteLine($"XDocument parse failure: {ex}");
}

Console.ReadLine();
}
Есть ли способ, которым мы можем иметь xdocument игнорировать какие -либо коды Hex Entities или заменить на отдельные пространственные chars? В противном случае, нам придется предварительно обработать документы с помощью корпорации, чтобы заменить такие выражения на пробелы.>

Подробнее здесь: https://stackoverflow.com/questions/794 ... -character
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»