Jump to content
php.lv forumi
  • 0

Serveris - XML - Javascript (klients) - Izmainīt struktūru - Izvadīt


kroko

Question

Labsvakars.

Pēdējo stundu laikā izlasīju čupu materiālu, un tagad viss ir vienā ķīselī. Serverpuses, klientpuses, headerkontettaipi utt.

Uz servera atrodas SVG fails. SVG=XML. Pašlaik čakarējos ar tajā pašā wiki linkā doto W3C's SVG logo (nepārprast, fails ir fiziski uz "mana" servera, t.i., uz tā kur atrodas tālāk jautājumā ietvertais svgchakaretajs.html, viss notiek viena domēna ietvaros).

 

Vai ir iespējams klienta! pusē caur javascript nolasīt SVG saturu, izmainīt to, un klientam prezentēt izmainīto SVG?

Nav vajadzīgs (un nav arī pieejams) ActiveXObject un tātad arī, piem., Document.save(objTarget), metode (jāstrādā ir tikai uz webkita bāzētajiem pārlūkiem)

 

Tātad, ja oriģinālais SVG ir šāds

SVG-logo.svg

<svg xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    width="100%" 
    height="100%"
    viewBox="0 0 300 300">
    ..........
    ..........
    ..........
</svg>

tad vēlos iegūt

<svg xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    width="100%" 
    height="100%"
    viewBox="0 0 300 300"
    atrībūtanosaukums="atribūtavērtība">
    ..........
    ..........
    ..........
</svg>

 

Pašlaik ir šādi

 

<script type="text/javascript">
// Variabļi
var xmlhttp;
var xmlDoc;

// Funkcija lai ielasītu SVG (t.i., XML)
function loadSVGXML(path) {
if (window.XMLHttpRequest) {
	xmlhttp=new XMLHttpRequest();
	xmlhttp.open("GET",path,false);
	xmlhttp.send();
	// XML DOM OBJECT
	xmlDoc=xmlhttp.responseXML;
}
else {
	alert("oops");
}
}

// Funkcija, kas rootnodei pievieno atribūtu
function setAttrInRootNode() {

var rootNode= xmlDoc.documentElement;
xmlDoc.documentElement.setAttribute('myAttrName', 'myAttrValue');
}

// Tests
function testIfset() {
rootNode= xmlDoc.documentElement;
document.write("Last attribute name: " + rootNode.attributes[rootNode.attributes.length-1].name + "<br />");
document.write("Last attribute value: " + rootNode.attributes[rootNode.attributes.length-1].nodeValue + "<br />");
}

loadSVGXML("SVG-logo.svg");
setAttrInRootNode();
//testIfset();
</script>

 

Ja iespējoj testIfset, redzams, ka xmlDoc objekts ir izmainīts. Vai tehnoloģija atļauj šo objektu tagad, vienārši sakot, pārvērst "tīrā" XML (kā piemērs kalpo- atvērt augstāk nolinkoto "W3C's SVG logo" un atvērt view source pārlūkprogrammā) un servēt klientam kā SVG (tātad content-type: image/svg+xml)?

Pieņemu, ka, piem., ar php un SimpleXML varētu viens divi, bet tieši javascript ir jautājums. Serveris ir "tikai", lai "padotu" failu.

Liels paldies.

kroko

Edited by kroko
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

ja jau serveris padod failu, tad kapēc prasot failu tu vinjam nevari iedot vajadzīgos parametrus un lai serveris ieraksta failā un atdod tev failu ar izmaiņām ... ?

 

ja vajag bieži mainīt tos atribūtus tad pieprasi visu laiku jaunu failu loadSVGXML

 

kāds ir mērķis šitam visam ?

 

un ja tev vajag tīru xml, tad lai serveris arī sūta tīru xml ..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...