Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Looking back, I can't tell if your question was for php or javascript, but here is an answer in Javascript. Just save it to an HTML file and load it in a new browser window to see the output.</p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt; &lt;/head&gt; &lt;body&gt; &lt;table width="100%" align="center" class="mytable" border="1" cellspacing="1"&gt; &lt;tr&gt;&lt;td width="100%"&gt;&lt;b&gt;Δ.Ο.Υ. Α' ΑΘΗΝΩΝ (Α',Β',Γ',ΙΕ',ΚΒ') Κ.Α.: 1101&lt;/b&gt; Αναξαγόρα 6-8, T.K. 100 10 Αθήνα&lt;/a&gt;&lt;a name="aa8inon"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td width="8%"&gt;Προϊστάμενος&lt;/td&gt;&lt;td width="8%"&gt;&amp;nbsp;&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;210&lt;/b&gt;-52.72.810, 770&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td width="8%"&gt;Υποδιευθυντής Φορολογίας&lt;/td&gt;&lt;td width="8%"&gt;&amp;nbsp;&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;210&lt;/b&gt;-52.72.804&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td width="8%"&gt;Υποδιευθυντής Ελέγχου&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;213&lt;/b&gt; 1604121&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;210&lt;/b&gt;-52.72.807&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;table width="100%" align="center" class="mytable" border="1" cellspacing="1"&gt; &lt;tr&gt;&lt;td width="100%"&gt;&lt;b&gt;Δ.Ο.Υ. ΚΑΤΟΙΚΩΝ ΕΞΩΤΕΡΙΚΟΥ Κ.Α.: 1125&lt;/b&gt; Μετσόβου 4-T.K. 106 82 Αθήνα&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td width="8%"&gt;Προϊστάμενος&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;213&lt;/b&gt; 1607155&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;210&lt;/b&gt;- 8204607&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td width="8%"&gt;Υποδιευθυντής Φορολογίας&lt;/td&gt;&lt;td width="8%"&gt;&amp;nbsp;&lt;/td&gt;&lt;td width="8%"&gt;&lt;b&gt;210&lt;/b&gt;- 8204604&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;textarea id="output" rows="24" cols="140"&gt;&lt;/textarea&gt; &lt;/body&gt; &lt;script type="text/javascript"&gt; var tables=document.getElementsByTagName("table"); var doc, note, el, elName, txt,txtContent; doc=document.implementation.createDocument("AnyNamespaceYouWantForYourXML","RootElementName"); //In older versions of IE, I believe you'll have to resort to an ActiveX object for(var t =0; t&lt;tables.length;t++){ el=doc.createElement("note"); note=doc.documentElement.appendChild(el); rows=tables[t].getElementsByTagName("tr"); for(var r=0; r&lt;rows.length; r++){ var tds=rows[r].getElementsByTagName("td"); if(r==0){ note.setAttribute("doy",tds[0].innerHTML); //Unlike in your example output, the real output will have 'special' characters correctly html encoded } else { elName=tds[0].innerText; elName=elName.trim(); //You probably want to discard leading or trailing whitespace elName=elName.replace(/[\s]+/g,"_"); //XML element names cannot contain spaces, so replace with underscores //There are other rules relating to valid XML element names which you may need to add here. Greek letters should be fine. el=doc.createElement(elName); //It wasn't clear from your example whether you wanted the xml element to contain the text of the html or some text and a td element //The first case seemed more likely, so here it is txtContent=" &lt;/td&gt;"; for(var d=1;d&lt;tds.length;d++){ txtContent+=tds[d].outerHTML; } txt=doc.createTextNode(txtContent); el.appendChild(txt); //Put the text in the element note.appendChild(el); //Add the element to the note } } } console.log(doc); //Check the console, you have a useful XML document object document.getElementById("output").value=xml2Str(doc.documentElement); //Output a string representation function xml2Str(xmlNode) { try { // Pretty printing available? return XML((new XMLSerializer()).serializeToString(xmlNode)).toXMLString(); } catch (e) {} try { // Gecko- and Webkit-based browsers (Firefox, Chrome), Opera. return (new XMLSerializer()).serializeToString(xmlNode).replace(/&lt;([^\/])/g,"\n&lt;$1"); } catch (e) {} try { // Internet Explorer. return xmlNode.xml.replace(/&lt;([^\/])/g,"&lt;\1"); } catch (e) {} //Other browsers without XML Serializer alert('Xmlserializer not supported'); return false; } &lt;/script&gt; &lt;/html&gt; </code></pre> <p>Sample output (indentation added by hand):</p> <pre><code>&lt;RootElementName xmlns="AnyNamespaceYouWantForYourXML"&gt; &lt;note doy="&amp;lt;b&amp;gt;Δ.Ο.Υ. Α' ΑΘΗΝΩΝ (Α',Β',Γ',ΙΕ',ΚΒ') Κ.Α.: 1101&amp;lt;/b&amp;gt; Αναξαγόρα 6-8, T.K. 100 10 Αθήνα&amp;lt;a name=&amp;quot;aa8inon&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;"&gt; &lt;Προϊστάμενος&gt; &amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;210&amp;lt;/b&amp;gt;-52.72.810, 770&amp;lt;/td&amp;gt;&lt;/Προϊστάμενος&gt; &lt;Υποδιευθυντής_Φορολογίας&gt; &amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;210&amp;lt;/b&amp;gt;-52.72.804&amp;lt;/td&amp;gt;&lt;/Υποδιευθυντής_Φορολογίας&gt; &lt;Υποδιευθυντής_Ελέγχου&gt; &amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;213&amp;lt;/b&amp;gt; 1604121&amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;210&amp;lt;/b&amp;gt;-52.72.807&amp;lt;/td&amp;gt;&lt;/Υποδιευθυντής_Ελέγχου&gt; &lt;/note&gt; &lt;note doy="&amp;lt;b&amp;gt;Δ.Ο.Υ. ΚΑΤΟΙΚΩΝ ΕΞΩΤΕΡΙΚΟΥ Κ.Α.: 1125&amp;lt;/b&amp;gt; Μετσόβου 4-T.K. 106 82 Αθήνα"&gt; &lt;Προϊστάμενος&gt; &amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;213&amp;lt;/b&amp;gt; 1607155&amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;210&amp;lt;/b&amp;gt;- 8204607&amp;lt;/td&amp;gt;&lt;/Προϊστάμενος&gt; &lt;Υποδιευθυντής_Φορολογίας&gt; &amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td width="8%"&amp;gt;&amp;lt;b&amp;gt;210&amp;lt;/b&amp;gt;- 8204604&amp;lt;/td&amp;gt;&lt;/Υποδιευθυντής_Φορολογίας&gt; &lt;/note&gt; &lt;/RootElementName&gt; </code></pre> <p>[Edit] Things to note:</p> <ol> <li>Your example output was confusing in that it contained unmatched tags (e.g. markup inside your doy attribute and the inside of your Greek-named tags). I tried to interpret your sample output as best I could and converted everything within the attribute and within the Greek-named elements to text. That means that &lt; is represented as &amp; lt; and " as &amp; quot; and ' as &amp; apos; But, another possibility is to surround the markup with &lt;[!CDATA[ ... ]]> to tell the XML interpreter not to parse characters in that area.</li> <li>While you can name XML elements with Greek characters, note that not all characters are valid or XML element names, so you will have to have some sort of control over what text can appear inside that first cell, or explicitly correct for invalid characters in your code. See <a href="http://www.w3schools.com/xml/xml_elements.asp" rel="nofollow">http://www.w3schools.com/xml/xml_elements.asp</a></li> </ol>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload