1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Analisar sintático de xml

Discussão em 'Programação' iniciada por filipe1996, 12 de Maio de 2018. (Respostas: 0; Visualizações: 138)

  1. Num âmbito de um trabalho escolar, em que o objetivo é fazer a leitura de um código xml e passar gerar esse ficheiro em latex, usando lex e yacc, e estou com dificuldades para eliminar parte do lixo dentro das tags do xml.

    <ProjectAuthor="BrunoVieira"CommentTableSortAscending="false"CommentTableSortColumn="Date Time"Description="&lt;html&gt;&#13;&#10; &lt;head&gt;&#13;&#10; &lt;style type=&quot;text/css&quot;&gt;&#10; &lt;!--&#10; body { color: #000000; font-family: Dialog; font-size: 12px }&#10; --&gt;&#10; &lt;/style&gt;&#13;&#10; &#13;&#10; &lt;/head&gt;&#13;&#10; &lt;body&gt;&#13;&#10; &lt;/body&gt;&#13;&#10;&lt;/html&gt;&#13;&#10;"DocumentationType="html"ExportedFromDifferentName="false"ExporterVersion="12.2"Name="untitled"TextualAnalysisHighlightOptionCaseSensitive="false"UmlVersion="2.x"Xml_structure="simple">
    <DBTableBacklogActivityId="0"DataModel="Physical"Documentation_plain=""Id="mgROAsaGAqFiAQs"Name="Produto"OrmSyncState="Not Sync"PmAuthor="BrunoVieira"PmCreateDateTime="2018-05-08T16:50:11.289"PmLastModified="2018-05-08T17:14:57.921"PrimaryKeyClustered="Unspecified"PrimaryKeyConstraintNamePattern=""QualityScore="-1"SyncType="Not Sync"Type="0"Unlogged="false"UserIDLastNumericValue="0">


    //código lex

    %{
    #include "y.tab.h"
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    %}
    %option noyywrap
    %option yylineno
    %%
    "<Project" return IPROJECT;
    "</Project" return FPROJECT;
    "<DBTable" return IDBTABLE;
    "</DBTable" return FDBTABLE;
    "<DBColumn" return IDBCOLUMN;
    "</DBColumn" return FDBCOLUMN;

    [A-Za-z0-9]* {strcpy(yylval.str,yytext); return (TEXTO);}

    > return '>';
    . ;
    [ \t\n] ;
    %%


    //Parte do coódigo do ficheiro de yacc

    {
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int yylex();
    int yyerror(char *);
    extern int yylineno;


    %}
    %union {char str[1000];}
    %token IPROJECT FPROJECT IDBTABLE FDBTABLE IDBCOLUMN FDBCOLUMN
    %token<str> TEXTO
    %start xml //definir o axioma
    %%
    xml :
    | IPROJECT TEXTO lixo {printf("inicio projeto\n");} '>' project {printf("proj\n");} FPROJECT '>'
    ;
    project: tabela project
    ;



    ...



    %%
    int main(){
    yyparse(); //Analisador sintatico
    return 0;
    }
    int yyerror(char *str){
    fprintf(stderr,"Linha: %d ,Erro: %s\n",yylineno,str);
    return 0;
    }


    Eu consigo limpar tudo o que está nas tags com este código, mas não consigo deixar só uma parte do código xml. Eu queria deixar o que não está a negrito e apagar o resto. Será que alguém me pode ajudar?

    Obrigado.
     

Partilhar esta Página