Как указать формат вывода XML при записи из DataTable? - PullRequest
3 голосов
/ 10 декабря 2008

В C # я создаю файл XML из DataTable, используя dataTable.WriteXml (filePath), и получаю следующее:

<?xml version="1.0" encoding="utf-8" ?>
<ExperienceProfiles>
  <ExperienceProfile>
    <Col1>blah</Col1>
    <Col2>4ed397bf-a4d5-4ace-9d44-8c1a5cdb0f34</Col2>
  </ExperienceProfile>
</ExperienceProfiles>

Как я могу заставить его написать XML в следующем формате?

<?xml version="1.0" encoding="utf-8" ?>
<ExperienceProfiles>
  <ExperienceProfile Col1="blah"
    Col2="blah" ></ExperienceProfile>
</ExperienceProfiles>

Ответы [ 3 ]

5 голосов
/ 10 декабря 2008

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

Вам нужно будет создать XML-схему для ваших данных и загрузить ее в DataSet, прежде чем записывать XML. В схеме определите Col1 и Col2 как атрибуты элемента ExperienceProfile, и DataSet узнает, как отформатировать выходной документ в соответствии с требованиями, указанными в схеме.

Если вам неудобно создавать схему, вы можете создать образец файла XML так, как вы хотите, чтобы он был отформатирован, а затем взгляните на класс XmlSchemaInference в платформе. Этот класс можно использовать для автоматической генерации вашей схемы, вам может потребоваться немного изменить вывод, но он может помочь, если вы не знакомы с XSD.

4 голосов
/ 22 сентября 2009

вы можете использовать функцию ColumnMapping столбца с данными. .

column.ColumnMapping = MappingType.Attribute
0 голосов
/ 10 декабря 2008

Краткий ответ: вы не можете, используя Метод WriteXml объекта DataTable.

Длинный ответ (который не очень длинный): Просто сверните свое.

Уберите мой ответ, как указано выше:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...