2011-09-30 8 views
0

Я пытаюсь загрузить XML, содержащий метаданные, например:Как загрузить XML в DataSet с помощью XSL с C#

<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?

спасибо.

+0

Когда вы говорите, что xls означает XSL? – LarsH

ответ

2

Возможно, вы захотите посмотреть, как DataSetinfers table structure из XML. Смотрит на меня, как вам нужно:

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

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

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

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

+0

Ну, я постараюсь, конечно, и отправлю туда, когда (или если) я получу его. Большое спасибо! –

+0

Кроме того, хотя я уверен, что это очевидно - сначала вы должны вручную отредактировать свой XML, как мой образец, чтобы убедиться, что DataSet может вывести структуру перед тем, как идти, и потратить кучу времени на создание XSLT. – ladenedge