Как загрузить XML в DataSet через XSL с C # - PullRequest
0 голосов
/ 30 сентября 2011

Я пытаюсь загрузить XML-файл, содержащий метаданные, например:

<DataSet>
        <DataTable id="Estrutura">
          <Columns>
            <Column FieldName="ORDEM" DisplayLabel="ORDEM" DataType="Integer" Required="0" Size="0"/>
            <Column FieldName="NOME" DisplayLabel="NOME" DataType="String" Required="0" Size="100"/>
            <Column FieldName="NIVEL" DisplayLabel="NIVEL" DataType="Integer" Required="0" Size="0"/>
            <Column FieldName="INDICE_IMAGEM" DisplayLabel="INDICE_IMAGEM" DataType="Integer" Required="0" Size="0"/>
            <Column FieldName="TIPO" DisplayLabel="TIPO" DataType="String" Required="0" Size="100"/>
          </Columns>
          <Rows>
            <Row ORDEM="4" NOME="DUnit Pré-Libor6M" NIVEL="3" INDICE_IMAGEM="12" TIPO="Carteira"/>
            <Row ORDEM="3" NOME="DUnit CDI-Libor6M" NIVEL="3" INDICE_IMAGEM="12" TIPO="Carteira"/>
            <Row ORDEM="2" NOME="DUnit RF_Swaps" NIVEL="2" INDICE_IMAGEM="10" TIPO="Pasta"/>
            <Row ORDEM="1" NOME="DUnit RF_Swaps" NIVEL="1" INDICE_IMAGEM="2" TIPO="Tesouraria"/>
            <Row ORDEM="0" NOME="DUnit" NIVEL="0" INDICE_IMAGEM="0" TIPO="Instituição"/>
          </Rows>
        </DataTable>
        <DataTable id="Parametro;RME">
          <Columns>
            <Column FieldName="Definição" DisplayLabel="Definição" DataType="String" Required="0" Size="50"/>
            <Column FieldName="Valor" DisplayLabel="Valor" DataType="String" Required="0" Size="150"/>
          </Columns>
          <Rows>
            <Row Definição="Padrão da Cota" Valor="Fechamento"/>
            <Row Definição="Data Inicial" Valor="11/1/2011"/>
            <Row Definição="Data Final" Valor="12/1/2011"/>
            <Row Definição="Formas Apuração" Valor="Customizado"/>
            <Row Definição="Tipo Preço Stock" Valor="Fechamento"/>
            <Row Definição="Data Atual/Hora" Valor="18/8/2011 17:42:00"/>
            <Row Definição="Usuário" Valor="DUNIT"/>
            <Row Definição="Definições de Cálculo" Valor="Usuário"/>
            <Row Definição="Moeda Visual" Valor="REAL"/>
            <Row Definição="Tipo Financeiro" Valor="Líquida"/>
            <Row Definição="Tipo Rentabilidade" Valor="Líquida"/>
            <Row Definição="Método Rentabilidade" Valor="TIR"/>
            <Row Definição="Quantidade de Barras no Gráfico" Valor="10"/>
            <Row Definição="Usa Todas as Barras no Gráfico" Valor="Não"/>
          </Rows>
        </DataTable>
</DataSet>

Ну, как это возможно увидеть, это похоже на структуру набора данных, но я не понимаю, как это работает. Я думаю, что попробуйте xls, но как я могу сделать xls, который превращает этот код xml в xml, распознаваемый DataSet Другими словами, как я могу создать этот XSL и загрузить его вместе с XML, чтобы он был распознаваем DataSet?

Спасибо.

1 Ответ

2 голосов
/ 30 сентября 2011

Возможно, вы захотите взглянуть на то, как DataSet выводит структуру таблицы из XML. Похоже, мне просто нужно:

  • удалить определения столбцов (те, которые выводятся),
  • переименуйте ваш элемент DataTable в фактическое имя таблицы и
  • сделать Row дочерним элементом нового элемента таблицы.

Например, что-то вроде этого должно работать:

<DataSet>
 <Estrutura>
   <Row ORDEM="4" NOME="DUnit Pré-Libor6M" NIVEL="3" .../>
   <Row ORDEM="3" NOME="DUnit CDI-Libor6M" NIVEL="3" .../>
   ...

Использование XSL-преобразования для достижения этого состояния является довольно простым использованием XSL и не должно быть слишком сложным с введением в XSL по сети. Я предлагаю вам попробовать и опубликовать новый вопрос здесь, на SO, когда вы столкнетесь с конкретными проблемами XSL.

...