Silverlight/XAML – Learning by Coding

[ xml_verarbeitung.xaml --> Grafik anzeigen ]

  1: <?xml version="1.0" encoding="UTF-8"?>
  2: <!-- coded by Thomas Meinike 04/08 -->
  3: <Canvas xmlns="http://schemas.microsoft.com/client/2007"
  4:         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5:         x:Name="daten" Loaded="LoadXML">
  6: 
  7:   <TextBlock Canvas.Left="20" Canvas.Top="15" Foreground="#999"
  8:     FontFamily="Lucida" FontSize="18" Text="Inhalte dynamisch aus einem XML-Dokument laden"/>
  9: 
 10:   <TextBlock Canvas.Left="20" Canvas.Top="50" FontFamily="Arial" FontSize="18" Foreground="#00C" Text="Jahr"/>
 11:   <TextBlock Canvas.Left="100" Canvas.Top="50" FontFamily="Arial" FontSize="18" Foreground="#00C" Text="Technologie"/>
 12:   <TextBlock Canvas.Left="600" Canvas.Top="50" FontFamily="Arial" FontSize="18" Foreground="#00C" Text="Herausgeber"/>
 13: 
 14: 
 15:   <!-- // zusätzlich verwendeter JavaScript-Code:
 16: 
 17:   function LoadXML(sender,eventArgs)
 18:   {
 19:     var sl_ctrl,daten_obj,textblock,dl;
 20: 
 21:     sl_ctrl=sender.getHost();
 22:     daten_obj=sender.findName("daten");
 23:     textblock='<TextBlock Canvas.Left="" Canvas.Top="" FontFamily="Arial" FontSize="16" Foreground="#00C" Text=""/>';
 24: 
 25:     dl=sl_ctrl.createObject("downloader");
 26: 
 27:     dl.addEventListener("DownloadFailed",function(sender,eventArgs)
 28:     {
 29:       var fehler=sl_ctrl.content.createFromXaml(textblock);
 30:       fehler.text="Fehler bei der Datenabfrage!";
 31:       fehler.foreground="#F00";
 32:       fehler["Canvas.Left"]="20";
 33:       fehler["Canvas.Top"]="80";
 34:       daten_obj.children.add(fehler);  
 35:     }); 
 36: 
 37:     dl.addEventListener("Completed",function(sender,eventArgs)
 38:     {
 39:       if(sender.status==200)
 40:       {      
 41:         var xml_obj=XMLDocument(sender.responseText);    
 42:         var tech_items=xml_obj.getElementsByTagName("technologie");
 43: 
 44:         if(tech_items)
 45:         {
 46:           var anzahl=tech_items.length;
 47: 
 48:           for(var i=0;i<anzahl;i++)
 49:           {
 50:             var jahr=tech_items.item(i).getElementsByTagName("herausgeber").item(0).getAttribute("jahr");      
 51:             var kurz=tech_items.item(i).getElementsByTagName("kurzbezeichnung").item(0).firstChild.nodeValue;      
 52:             var tech=tech_items.item(i).getElementsByTagName("bezeichnung").item(0).firstChild.nodeValue;      
 53:             var hrsg=tech_items.item(i).getElementsByTagName("herausgeber").item(0).firstChild.nodeValue;
 54: 
 55:             var jahr_obj=sl_ctrl.content.createFromXaml(textblock);
 56:             jahr_obj.text=jahr;
 57:             jahr_obj["Canvas.Left"]="20";
 58:             jahr_obj["Canvas.Top"]=80+20*i;
 59: 
 60:             var tech_obj=sl_ctrl.content.createFromXaml(textblock);
 61:             tech_obj.text=tech+" ("+kurz+")";
 62:             tech_obj["Canvas.Left"]="100";
 63:             tech_obj["Canvas.Top"]=80+20*i;
 64: 
 65:             var hrsg_obj=sl_ctrl.content.createFromXaml(textblock);
 66:             hrsg_obj.text=hrsg;
 67:             hrsg_obj["Canvas.Left"]="600";
 68:             hrsg_obj["Canvas.Top"]=80+20*i;      
 69:         
 70:             daten_obj.children.add(jahr_obj);
 71:             daten_obj.children.add(tech_obj);
 72:             daten_obj.children.add(hrsg_obj);      
 73:           }
 74:         }      
 75:       }
 76:       else
 77:       {
 78:         var fehler=sl_ctrl.content.createFromXaml(textblock);
 79:         fehler.text="Fehler bei der Datenabfrage!";
 80:         fehler.foreground="#F00";
 81:         fehler["Canvas.Left"]="20";
 82:         fehler["Canvas.Top"]="80";
 83:         daten_obj.children.add(fehler);  
 84:       }
 85:     }); 
 86: 
 87:     dl.open("GET","media/technologien.xml");
 88:     dl.send();  
 89:   }
 90: 
 91: 
 92:   function XMLDocument(xmldata)
 93:   {
 94:     var xmldoc=null;
 95: 
 96:     if(window.ActiveXObject)
 97:     {
 98:       xmldoc=new ActiveXObject("Microsoft.XMLDOM");
 99:       xmldoc.async=false;
100:       xmldoc.loadXML(xmldata);
101:     }
102:     else if(window.DOMParser)
103:     {
104:       xmldoc=(new DOMParser()).parseFromString(xmldata,"text/xml");
105:     }
106:   
107:     return xmldoc;
108:   }
109: 
110:   -->
111: 
112: 
113:   <!-- // zusätzlich verwendeter XML-Code in technologien.xml:
114: 
115:   <?xml version="1.0" encoding="UTF-8"?>
116:   <technologien>
117:     <technologie>
118:       <kurzbezeichnung>DocBook</kurzbezeichnung>
119:       <bezeichnung>DocBook</bezeichnung>
120:       <herausgeber jahr="1998">OASIS</herausgeber>
121:     </technologie>
122:     <technologie>
123:       <kurzbezeichnung>RSS</kurzbezeichnung>
124:       <bezeichnung>Really Simple Syndication</bezeichnung>
125:       <herausgeber jahr="1999">UserLand Software</herausgeber>
126:     </technologie>
127:     <technologie>
128:       <kurzbezeichnung>XSLT</kurzbezeichnung>
129:       <bezeichnung>Extensible Stylesheet Language Transformations</bezeichnung>
130:       <herausgeber jahr="1999">W3C</herausgeber>
131:     </technologie>
132:     <technologie>
133:       <kurzbezeichnung>XHTML</kurzbezeichnung>
134:       <bezeichnung>Extensible Hypertext Markup Language</bezeichnung>
135:       <herausgeber jahr="2000">W3C</herausgeber>
136:     </technologie>
137:     <technologie>
138:       <kurzbezeichnung>SVG</kurzbezeichnung>
139:       <bezeichnung>Scalable Vector Graphics</bezeichnung>
140:       <herausgeber jahr="2001">W3C</herausgeber>
141:     </technologie>
142:     <technologie>
143:       <kurzbezeichnung>MathML</kurzbezeichnung>
144:       <bezeichnung>Mathematical Markup Language</bezeichnung>
145:       <herausgeber jahr="2001">W3C</herausgeber>
146:     </technologie>
147:     <technologie>
148:       <kurzbezeichnung>X3D</kurzbezeichnung>
149:       <bezeichnung>Extensible 3D</bezeichnung>
150:       <herausgeber jahr="2004">ISO</herausgeber>
151:     </technologie>
152:     <technologie>
153:       <kurzbezeichnung>OpenDocument</kurzbezeichnung>
154:       <bezeichnung>Open Document Format for Office Applications</bezeichnung>
155:       <herausgeber jahr="2005">ISO</herausgeber>
156:     </technologie>
157:     <technologie>
158:       <kurzbezeichnung>DITA</kurzbezeichnung>
159:       <bezeichnung>Darwin Information Typing Architecture</bezeichnung>
160:       <herausgeber jahr="2005">OASIS</herausgeber>
161:     </technologie>
162:     <technologie>
163:       <kurzbezeichnung>OOXML</kurzbezeichnung>
164:       <bezeichnung>Office Open XML</bezeichnung>
165:       <herausgeber jahr="2006">ECMA [ISO 2008]</herausgeber>
166:     </technologie>
167:   </technologien>
168: 
169:   -->
170: 
171: </Canvas>

[zum Anfang]