Отсутствует заголовок XML после преобразования файла XML в файл двоичного формата - PullRequest
0 голосов
/ 05 августа 2011

У меня проблема. У меня есть файл электронной таблицы XML, который я пытаюсь отправить по электронной почте. Поэтому я преобразовал в двоичный файл и прикрепил его к электронному письму. Проблема в том, что когда я пытаюсь открыть его (в Excel), он не показывает данные, которые я сохранил. Когда я открыл его как файл XML, я понял, что он не сохранил заголовок XML:
Так и должно быть:

<?xml version="1.0" encoding="utf-8"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
...
<Styles>
...
</Styles>
<Worksheet>
...
</Worksheet></Workbook>


после преобразования:

<Worksheet>
...
</Worksheet>

Я пытался использовать xmldocument, но я не работал, я также пытался использовать строку, все еще не работает.
Вот как я конвертирую XML в двоичный файл:

UTF8Encoding encoding = new UTF8Encoding();
binaryFile = encoding.GetBytes(xmlFile);

Как я могу исправить эту проблему? Благодаря.

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Я думаю, нам нужна дополнительная информация о том, как вы конвертируете файл XML.

Из вашего описания звучит, как будто вы сохранили таблицу Excel в XML, и по какой-то причине вы не можете просто прикрепить этот текстдокумент на электронную почту.Я предполагаю, что вы используете метод для прикрепления XML-файла, который требует байтового массива и не может быть просто указан местоположение файла.Если бы вы могли предоставить больше информации по этому вопросу, это помогло бы нам выяснить, где что-то идет не так для вас.

Часть, на которой я действительно застрял:

I 'Я пытался использовать xmldocument, но я не работал, я также пытался использовать строку, все еще не работает.

Как вы пробовали строку?Вы читали файл с диска, используя FileStream?Если это так, вы должны были бы получить все содержимое файла.

Использовали ли вы XmlDocument все время и пробовали XmlDocument.OuterXml?Это, вероятно, не даст вам контрольные заголовки, поскольку они не являются частью тела XML внутри корневого узла.

Так что на самом деле есть две вещи, которые я бы попробовал.Во-первых, если бы у меня был XML-файл на диске, и мне нужно было прикрепить его к электронному письму с помощью кода, и мой единственный вариант - предоставить массив байтов, я бы сделал что-то вроде:это не то, что вы делаете, вам нужно предоставить гораздо больше подробностей о том, с чего вы начинаете (файл на диске?), что вам нужно делать (отправлять автоматическую электронную почту?), какие у вас есть ограничения и какие-либодругая информация, которая ограничит потенциальные решения.

0 голосов
/ 08 августа 2011

Я обнаружил свою ошибку: я не сериализовал файл XML, поэтому после преобразования он просто показывает данные без заголовка XML.так что есть 2 способа решить эту проблему: во-первых, мы можем объединить заголовок со строкой данных или использовать функцию сериализации. Вот где я нашел, как это сделать .

...