SVG – Learning by Coding

[ create-methods.svg --> Grafik anzeigen ]

  1: 
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
  2: 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"

  3: 
  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [

  4: 
  <!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">

  5: 
  <!ENTITY h "Hallo">

  6: 
]>

​  7:   8: 
<!-- SVG Learning by Coding http://www.datenverdrahten.de/svglbc/ -->

  9: 
<!--    AuthorDrThomas Meinike 08/04 thomas@handmadecode.de     -->

​ 10:  11: 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"

 12: 
  onload="Create(evt)">

​ 13:  14: 
  <title>SVG Learning by Coding</title>

 15: 
  <desc>SVG-Spezifikation in Beispielen</desc>

​ 16:  17: 
  <defs>

​ 18:  19: 
    <style type="text/css">

 20: 
      <![CDATA[

​ 21:  22: 
      *

 23: 
      {

 24: 
        font-familysans-serif;

 25: 
        font-size12px;

 26: 
      }

​ 27:  28: 
      ]]>

 29: 
    </style>

​ 30: ​ 31:  32: 
    <script type="text/javascript">

 33: 
      <![CDATA[

​ 34:  35: 
      function Create(evt)

 36: 
      {

 37: 
        var svgdoc,svgroot,pi,df,en,et,ko,kr,cx,cy,ra,te,tx,ty,tc,tn,xmlser,output,

 38: 
            svgns="http://www.w3.org/2000/svg";

​ 39:  40: 
        svgdoc=evt.target.ownerDocument;

 41: 
        svgroot=svgdoc.rootElement;

​ 42:  43: 
        // createProcessingInstruction()

 44: 
        pi=svgdoc.createProcessingInstruction("xml-stylesheet",

 45: 
          "href=\"extern.css\" type=\"text/css\"");

 46: 
        svgdoc.insertBefore(pi,svgroot);

​ 47:  48: 
        // createEntityReference()

 49: 
        en=svgdoc.createEntityReference("h");

​ 50:  51: 
        // createCDATASection()

 52: 
        cd=svgdoc.createCDATASection("XML-Code: <svg>...</svg>");

​ 53:  54: 
        // createComment()

 55: 
        ko=svgdoc.createComment("Kommentartext");

​ 56:  57: 
        // createDocumentFragment()

 58: 
        df=svgdoc.createDocumentFragment();

​ 59:  60: 
        if(df && cd && ko)

 61: 
        {

 62: 
          df.appendChild(cd);

 63: 
          df.appendChild(ko);

 64: 
        }

​ 65:  66: 
        kr=svgdoc.createElementNS(svgns,"circle"); // createElementNS() bzw. createElement()

 67: 
        cx=svgdoc.createAttribute("cx");           // createAttribute()

 68: 
        cx.nodeValue="100";                        // Alternative:

 69: 
        kr.setAttributeNode(cx);                   // kr.setAttribute("cx","100")

 70: 
        cy=svgdoc.createAttribute("cy");

 71: 
        cy.nodeValue="100";

 72: 
        kr.setAttributeNode(cy);

 73: 
        ra=svgdoc.createAttribute("r");

 74: 
        ra.nodeValue="20";

 75: 
        kr.setAttributeNode(ra);

​ 76:  77: 
        if(df && kr)df.appendChild(kr);

​ 78:  79: 
        te=svgdoc.createElementNS(svgns,"text");

 80: 
        tx=svgdoc.createAttribute("x");

 81: 
        tx.nodeValue="30";

 82: 
        te.setAttributeNode(tx);

 83: 
        ty=svgdoc.createAttribute("y");

 84: 
        ty.nodeValue="60";

 85: 
        te.setAttributeNode(ty);

 86: 
        tc=svgdoc.createAttribute("class");

 87: 
        tc.nodeValue="xyz";

 88: 
        te.setAttributeNode(tc);

 89: 
        if(te && en)te.appendChild(en);

 90: 
        tn=svgdoc.createTextNode(" Welt!");        // createTextNode()

 91: 
        if(te && tn)te.appendChild(tn);

​ 92:  93: 
        if(df && te)df.appendChild(te);

​ 94:  95: 
        if(window.XMLSerializer)

 96: 
        {

 97: 
          xmlser=new XMLSerializer();

 98: 
          output=xmlser.serializeToString(svgroot.previousSibling)+

 99: 
            "\n\n"+xmlser.serializeToString(df);

100: 
        }

101: 
        else if(window.printNode)

102: 
        {

103: 
          output=printNode(svgroot.previousSibling)+"\n\n"+printNode(df);

104: 
        }

105: 
        else output="Kein Ergebnis erhalten!";

​106: 107: 
        alert("Generierter SVG-Code:\n\n"+output);

108: 
        if(df)svgroot.appendChild(df);

109: 
      }

​110: 111: 
      ]]>

112: 
    </script>

​113: 114: 
  </defs>

​115: 116: 
  <text x="20" y="30" style="fill: #000; font-size: 24px">

117: 
    Anwendung von "create"-DOM-Methoden

118: 
  </text>

​119: 120: 
  <text x="30" y="150">Verwendete "create"-Methoden:</text>

121: 
  <text x="30" y="155" style="fill: #00C">

122: 
    <tspan x="30" dy="16">createAttribute()</tspan>

123: 
    <tspan x="30" dy="16">createCDATASection()</tspan>

124: 
    <tspan x="30" dy="16">createComment()</tspan>

125: 
    <tspan x="30" dy="16">createDocumentFragment()</tspan>

126: 
    <tspan x="30" dy="16">createElementNS()</tspan>

127: 
    <tspan x="30" dy="16">createEntityReference()</tspan>

128: 
    <tspan x="30" dy="16">createProcessingInstruction()</tspan>

129: 
    <tspan x="30" dy="16">createTextNode()</tspan>

130: 
    <tspan x="30" dy="24" style="fill: #000">

131: 
      Hinweis: Die mittels createProcessingInstruction() aus extern.css eingebundenen

132: 
      Formatierungen werden</tspan>

133: 
    <tspan x="30" dy="16" style="fill: #000">

134: 
      nur mit ASV 6.0 bzwFF 1.5 angezeigtwobei FF die Entity-Referenz

135: 
      nicht erzeugt (das Wort 'Hallo' fehlt)!</tspan>

136: 
  </text>

​137: 138: 
</svg>

[zum Anfang]