All pastes #155766 Raw Edit

Stuff

public javascript v1 · immutable
#155766 ·published 2006-08-31 10:12 UTC
rendered paste body
function has_attribute(tag){ 	var regex =/([a-zA-Z0-9_\.]+)\[@([a-zA-Z0-9_\.]+)\]/;	return regex.exec(tag);}function has_attribute_and_value(tag){	var regex = /([a-zA-Z0-9_\.]+)\[@([a-zA-Z0-9_\.]+)=([a-zA-Z0-9_\.]+)\]/;	return regex.exec(tag);}function save_data(path, data){	var tags = path.split('/');	var current = document.getElementById('xml');		if (tags.length > 0)	{		for (i in tags)		{			if (x = has_attribute_and_value(tags[i]))			{				var all = current.getElementsByTagName(x[1]);				var cont = false;								if (all)				{					for (var i = 0; i != all.length; ++i)					{						if (all[i].hasAttribute(x[2]) && all[i].getAttribute(x[2]) == x[3])						{							current = all[i];							cont = true;						}					}				}				if (!cont)					return false;			}			// a[@x]			else if (x = has_attribute(tags[i]))			{				var all = current.getElementsByTagName(x[1]);								if (all)				{					current = all[0];					current.setAttribute(x[2], data);					return true;				}								return false;			}						// a/			else			{				var all = current.getElementsByTagName(tags[i]);								if (all)					current = all[0];									else					return false;			}						// als het de laatste is!			if (i == tags.length - 1 && current)			{				// verwijder eerst alles				var children = current.childNodes;				for (x in children)				{					if (children.item(x) != null)						current.removeChild(children.item(x));				}				current.appendChild(document.createTextNode(data));						}		}	}}function loadxml(){	var root = document.getElementById('inputs');	var inputs = root.getElementsByTagName('input');	for (var i = 0; i != inputs.length; ++i)	{		var x = inputs.item(i);				save_data(x.getAttribute('path'), x.value);	}		document.getElementById('debug').value = document.getElementById('xml').innerHTML;}