Lire ,Ecrire et Enregistrer un fichier Xml local
Menu horizontal

Execute Html

Edition du fichier xml
-----------------------------------------
Menu vertical

Edite l´élément

Ajoute un élément enfant

Ajoute un attribut

Ajouter un élément TEXT

Ajouter un élément CDATA

Supprime l´élément et ses enfants

Ajoute un commentaire

Copie l´élément dans le presse-papiers

Coller l´élément

Insère un enfant

Supprime l´élement

Supprime l´élement

Descend l´élément

Remonte l´élément

Augmente la taille du textarea
]]>
Lire ,Ecrire et Enregistrer un fichier Xml local
Exécuter un fichier "ZTml" (html(head-css-javascript))) local
Xml
]]>
Read, Write and Save an XML local file
Horizontal menu

Run HTML

Edit xml file
-----------------------------------------
Vertical menu

Edit element

Add child element

Add a attribute

Add a TEXT element

Add CDATA element

Removes the element and its children

Add a comment

Copies the item to the clipboard div>

Paste the element

Insert a child

Delete the element

Delete the element

Moves the element down

Moves up the element

Increase textarea's size
]]>
Read ,Edit and Save Xml local File
Run "ZTml" (html(head-css-javascript)))
Xml
]]>
Xml Editor ,ZTmStudio,Xml Editor ,
]]>
'+ ZTmsav;
}else{alert("Choose a file");}
}
// htmltorun
if(/window-help/.test(div.src)) ZTmHlpRun();
//Run app
if(/xml.png/.test(div.src)) {
alert("Filereader ZTmlocal: "+ZTmlocal);
params="content="+encodeURIComponent(ZTmsav);
const xhr = new XMLHttpRequest();
xhr.open("post", "http://127.0.0.1:8080/");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
alert("statut:"+xhr.status);
alert(xhr.responseText);
ZTmWindow=window.open( "http://localhost:8080/xml","_blank");
}};
xhr.send(params);
}
}
if (event.type=='click' && div.nodeName=='INPUT')
{
if (/txtfiletoread/.test(div.className)){
if (window.File && window.FileReader && window.FileList && window.Blob) {
var fileSelected = ZTmCln("INPUT",'txtfiletoread');
fileSelected.addEventListener('change', function (e) {
var fileExtension = /xml.*/;
//Get the file object
fileTobeRead = fileSelected.files[0];
a=fileTobeRead.name;
ZTmMain.ztmview.title =a.substring(0, a.indexOf('.'));
//Check of the extensio match
//alert(fileTobeRead.type.match(fileExtension));
a="";b="";
//Initialize the FileReader object to read the 2file
var fileReader = new FileReader();
fileReader.onload = function (e) {
fileContents = document.getElementById('filecontents');
fileContents.value = fileReader.result;
try {parser = new DOMParser();
ZTmlDoc = parser.parseFromString(fileReader.result,"text/xml");fif=1;}catch(e){alert("error save xml:"+e.message);fif=0;return;}
dcl=0;oldDiv=null;
cleanNode(ZTmlDoc);
ZTmsav=fileContents.value;
fileReader.close;
saveButton.disabled = false;
}
fileReader.readAsText(fileTobeRead);
}, false);
}else {
alert("Files are not supported");
}
}
if (/txtnewtoread/.test(div.className)){
headchar='ZTmStudio,Library Javascript,Xml Editeur ,ZTmReader ';
ZTmsav ="<"+"?"+'xml version="1.0" '+ 'encoding="utf-8"?>'+ ''+
''+'<'+'![CDATA['+'Nouveau'+']]'+'>'+''+
''+'<'+'![CDATA['+'Nouveau'+']]'+'>'+''+''+
'<'+'![CDATA['+'New]]'+'>'+''+
''+'<'+'![CDATA['+'Nouveau'+']]'+'>'+''+
''+'<'+'![CDATA['+
headchar+']]'+'>'+''+'<'+'![CDATA[Body]]'+'>';
/* ZTmsav ="<"+"?"+'xml version="1.0" '+ 'encoding="utf-8"?>'+ '$Nouveau£$New£$'+
headchar+'£$Body£>/body>';
var reg=/(\$)/gi;ZTmsav = ZTmsav.replace(reg,'');*/
fileContents = document.getElementById('filecontents');
ZTmMain.ztmview.title ="New";
// saveButton.value="Sauvegarder New.xml";
fileContents.value = ZTmsav;
try {parser = new DOMParser();
ZTmlDoc = parser.parseFromString(ZTmsav,"text/xml");fif=1;}catch(e){alert("error save xml:"+e.message);fif=0;return;}
dcl=0;oldDiv=null,dcl=0;
saveButton.disabled = false;
}
}
}
function ZTmBodyZTml(xreq){
var tmpbody="";
var mhtml = xreq.getElementsByTagName("html");
if(mhtml.length==0){
alert("no html");return;}else{
var mbody=mhtml.item(0).getElementsByTagName("body");
if(mbody.length!=0){
var children = mbody.item(0).childNodes;
for (var i=0;i
{
if (ZTmsav) {
const blob = new Blob([ZTmsav], { type: 'text/plain' });
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
// alert(fileselected);
link.download = ZTmMain.ztmview.title +".xml"; // Nom du fichier sauvegardé
link.click();
URL.revokeObjectURL(link.href); // Libérer la mémoire
}
});
}]]>
');
if (inode.hasAttributes()) {
attri=node.attributes;
for (j=0;j';
if( inode.hasChildNodes() ){
attri=inode.childNodes;
for (j=0;j';
//console.log(''+ bnode +'>');
}
}
return tmp;
}
function ZTmcalFileReaderTree(event){
ZTmtmp="";
//alert("ztmlocal:"+ZTmlocal);
var div=ZTmEvent(event).target;
var leng =ZTmEvent(event).list.length;
var nodear = new Array()
//alert(arguments.callee.name);
//alert(box3td.innerHTML);
debug="";
if (div.nodeName=="TD")
{
if(/ztmtitle/.test(div.className)) {
ZTmHlpRun();}
}
if (div.nodeName=="DIV")
{ //alert(div.className);
if(!/(ztmtexte)|(divtatt)|(ztminput)/.test(div.className))return;
// alert("caltree"+div.className+div.childNodes.length);
if(div.childNodes.length==1 ) ZTmClkTree(div,leng);
oCop.startli=div;
oCop.startul=div.parentNode;
oCop.type=oCop.startul.getAttribute("type");
oCop.endul=oCop.startul.parentNode;
if (oldDiv != null) oldDiv.style.backgroundColor = "";
oldDiv = div;
div.style.backgroundColor = "#FFB8B8";
}
if(/window-x/.test(div.src) ) {
// alert("ZTmlocal:"+ZTmlocal);
ZTmtmp="";
ZTmsav=ZTmsavinit(ZTmMain.ztmview.corps,ZTmtmp);
ZTmsav ="<"+"?"+'xml version="1.0" encoding="utf-8"?>'+ZTmsav;
// ZTmsav ="<"+"?"+'xml version="1.0" encoding="utf-8"?>'+ html_entity_decode(ZTmsav);
try {parser = new DOMParser();
ZTmlDoc = parser.parseFromString( ZTmsav,"text/xml");fif=1;}catch(e){alert("error save xml:"+e.message);fif=0;return;}
cleanNode(ZTmlDoc);
ZTmsav=getXmlAsString(ZTmlDoc);
fileContents.value=ZTmsav;
ZTmMainViewClear();
}
if(/window-javas.png/.test(div.src)) {
ZTmtmp="";tmp="off";
ZTmsav=ZTmsavinit(ZTmMain.ztmview.corps,ZTmtmp); // convertit corps en string xml
ZTmsav ="<"+"?"+'xml version="1.0" encoding="utf-8"?>'+ ZTmsav;
try {parser = new DOMParser();
ZTmlDoc = parser.parseFromString( ZTmsav,"text/xml");fif=1;}catch(e){alert("error save xml:"+e.message);fif=0;return;}
cleanNode(ZTmlDoc);
ZTmsav=getXmlAsString(ZTmlDoc);
mztml = ZTmlDoc.getElementsByTagName("ztml");
inode = ZTmlDoc.getElementsByTagName("ztmstudio"); var tmp="off";
if(inode[0].hasAttributes("ztmview")){
// tmp=inode[0].getAttribute("ztmview");
var tmp="on";
}
//alert("ztmview:"+tmp);
if(tmp=="off"|| tmp==null){
// alert(ZTmLang);
ZTmMain.ztmview = ZTmMain.create();
ZTmMain.ztmview.create();
ZTmMain.ztmview.icon='wx';ZTmicons.create();
ZTmMain.ztmview.icon='zt';ZTmicons.createbox1();
//ZTmMain.ztmview.corps.innerHTML=doc;
ZTmAppZTml(ZTmlDoc);
ZTmMain.ztmview.corps.innerHTML=ZTmBodyZTml(ZTmlDoc);
ZTmMain.ztmview.box2.onclick=ZTmboxuser;
ZTmMain.ztmview.titre.innerHTML=ZTmValueMsg('title');
ZTmMain.ztmview.srchlp=ZTmValueMsg('srchlp');
ZTm();
}else{
ZTmAppZTml(ZTmlDoc);
ZTm();
}
}
if (div.nodeName=="INPUT"||div.nodeName=="TEXTAREA" )
{
//div.style.background = "#CCCCCC";
//div.wrap="off";
div.readOnly=false;
var stype=div.parentNode.type;
oCop.type=stype;
//if(stype==4)ZTmCln("input","ZTmCss1").value="cdata";
liclass=div;
ulclass=div.parentNode;
oCop.startli=div;
oCop.startul=div.parentNode;
oCop.type=oCop.startul.getAttribute("type");
oCop.endul=oCop.startul.parentNode;
if (oldDiv != null) oldDiv.style.backgroundColor = "";
oldDiv = div;
div.style.backgroundColor = "#FFB8B8";
}
}
]]>