Avatar billede davidfossil Nybegynder
15. august 2006 - 16:20 Der er 11 kommentarer og
1 løsning

Framework til at bygge ASPX filer dynamisk

Nogen der kender til et .NET framework/API til oprettelse og redigering af filer i ASPX-formatet?

Mål:
At kunne hive en ASPX fil op fra disken, lokalisere nogle bestemte elementer og ændre atributter og indhold for disse.

Problem:
ASPX-formatet indeholder nogle konstruktioner der gør det umuligt at parse filerne direkte som XML.

Løsning:
Et objekt svarender til fx System.Xml.XmlDocument, som er bygget til at arbejde med ASPX-formatet.
Avatar billede snepnet Nybegynder
15. august 2006 - 16:30 #1
Kan du ikke skrive lidt pseudokode til hvordan du kunne forestille dig at bruge det?
Mvh
Avatar billede davidfossil Nybegynder
15. august 2006 - 17:37 #2
Hehe - jo da, jeg kan skrive et eksempel på hvordan jeg kunne tænke mig at arbejde med det her i C#

AspxDocument aspx = new AspxDocument();
aspx.Load("C:\\pages\\input.aspx");

foreach (AspxElement elm in aspx.AllDescendents)
{
  if (elm.TagPrefix.Equals("asp") && elm.TagName.Equals("HyperLink"))
  {
    elm.SetAttribute("ToolTip", "Whau - det her er jo et link!");
  }
}

aspx.Save("C:\\pages\\output.aspx");
Avatar billede davidfossil Nybegynder
15. august 2006 - 17:39 #3
SetAttribute() var vist lidt for Java-style. Det skulle nok have været: elm.Attributes["ToolTip"] = "whatever";

;o)
Avatar billede davidfossil Nybegynder
15. august 2006 - 17:42 #4
Et par andre mulige anvendelser:

aspx.OutputCache.Duration = TimeSpan.FromMinutes(15);
aspx.OutputCache.VaryBy = "id";

aspx.EnableViewState = false;

aspx.Namespaces.Add("mwc", "MyCompany.CustomWebControls");
Avatar billede snepnet Nybegynder
15. august 2006 - 19:37 #5
ok - jeg kan godt følge det.
Som udgangspunkt kan frameworket jo uden ballade parse en aspx-fil til et kontroltræ, så der er ingen ballade der.
Om der findes en enkelt måde at komme den anden vej er jeg ikke bekendt med... Men:
Jeg tror du lige skal overveje den endelige løsning... Du har jo også en c# fil sammen med din aspx-fil, og hvad skal der ske med den?
... Potentielt kan din "aspx-manipulater" jo gøre at siden ikke fungerer mere pga. den eksisterende C# kode.
Men... Prøv at fortæl hvad det er for et krav du vil forsøge at opfylde... Det kan være der er andre muligheder.
Mvh
Avatar billede ismand Nybegynder
17. august 2006 - 02:25 #6
Bare en lille indskudt sætning, du sikkert vil nyde godt af når du arbejder med stier.

string path = "c:\\hello\\world";

er lig:

string path = @"c:\hello\world"; <-- verbatim string
Avatar billede davidfossil Nybegynder
17. august 2006 - 19:46 #7
ismand > Kender den godt, men ellers tak for tippet. Som en tilføjelse bør det nævnes at @-tricket er så godt som uundværligt når man arbejder med regular expressions i C#
Avatar billede snepnet Nybegynder
17. august 2006 - 23:10 #8
Har du nogle bemærkninger til 15/08-2006 19:37:34 David?
Mvh
Avatar billede davidfossil Nybegynder
19. august 2006 - 13:17 #9
Well, jeg prøver jo at banke noget super simpelt CMS sammen. Jeg har ikke brug for anbefalinger af det ene det andet og det tredje system, og jeg har sådan set heller ikke rigtig brug for alternative løsningsforslag. Jeg har selv overvejet et lægge indholdet af miner sider over i nogle seperate XML-filer, ned i en database etc. etc., men jeg ville nu foretrække at der simpelthen blev genereret nye ASPX-filer når noget blev rettet. Der vil ikke være noget code-behind til de pågældende filer, så det burde være muligt at redigere i dem uden størrer vanskeligheder. Endvidere kører projektet .NET 2.0, så de ændrede ASPX-filer skulle gerne blive recompilet ved første request.

Der findes API'er til at bygge filer af mange formater (XML, Excel, Word, PDF etc.), så jeg håbede lidt at der fandtes noget tilsvarende, der blot spyttede ASPX ud. Desværre har jeg endnu intet fundet =\
Avatar billede snepnet Nybegynder
19. august 2006 - 18:34 #10
Jeg synes heller ikke det virker som en supergod løsning (måske derfor det er svært at finde eksempler på det), men det skulle være en overkommelig opgave at komme fra et kontroltræ til en aspx-fil.
Jeg vil gerne give dig et eksempel på det, hvis du er interesseret.
Mvh
Avatar billede davidfossil Nybegynder
25. august 2006 - 13:30 #11
Jeg tror bare jeg lukker den her, og overvejer nogle alternative løsningsmodeller.

Ellers tak for hjælpen.
Avatar billede snepnet Nybegynder
26. august 2006 - 20:02 #12
Ok :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester