[Bug 3] fix to split packages.xml into smaller files

bugzilla-daemon at wpkg.org bugzilla-daemon at wpkg.org
Mon May 8 19:54:58 CEST 2006


Please reply using this URL only: http://bugs.wpkg.org/show_bug.cgi?id=3





------- Additional Comments From snakebyte at email.dk  2006-05-08 19:54 -------
i have tried to download a clean version of wpkg 0.9.8
and the only thing i changed was the following:

NB: it is important to remove the old loadxml function....

if you can't make it work please send me some examples of your xml files i can
test it with.

if i remember correctly i included some of mine the last time i uploaded this
fix. if not i will gladly send you some ??


/*-------------------------------code changed
start------------------------------------*/
    // load packages and profiles
	hosts = loadXml( hosts_file, createXsl( base, "hosts" ) );
	profiles = loadXml( profiles_file, createXsl( base, "profiles" ) );
	packages = loadXml( packages_file, createXsl( base, "packages" ) );
/*-------------------------------code changed
end------------------------------------*/



/*-------------------------------code changed
start------------------------------------*/

/**
 * Loads an XML file and returns the root element.
 */
function loadXml( xmlPath, xslPath ) {
	var source = new ActiveXObject("Msxml2.DOMDocument.3.0");
	source.async = false;
	source.validateOnParse = false;
	source.load( xmlPath );
	
	if (source.parseError.errorCode != 0) {
	   var myErr = source.parseError;
	   info( "Error parsing xml: " + myErr.reason );
	}
	else {
		if( xslPath != null ) {
			var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0")
			xmlDoc.async="false"
			xmlDoc.validateOnParse = false;
			xmlDoc.loadXML( source.transformNode( xslPath ) );
			return xmlDoc.documentElement;
		}
		else {
			return source.documentElement;
		}
	}
}

/**
 * Creates xsl document object and returns it.
 */
function createXsl( base, folder ) {
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var file;
	if( !fso.folderExists( base + "\\" + folder ) ) {
		return null;
	}
	var e = new Enumerator(fso.GetFolder( base + "\\" + folder ).files);
	var str = "";
	var root = "";
	if( folder == "hosts" ) {
		root = "wpkg";
	}
	else {
		root = folder;
	}
	str = "<?xml version=\"1.0\"?>\r\n";
	str = str + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"
version=\"1.0\">\r\n";
	str = str + "	<xsl:output encoding=\"ISO-8859-1\" indent=\"yes\" method=\"xml\"
version=\"1.0\"/>\r\n";
	str = str + "	<xsl:template match=\"/\">\r\n";
	str = str + "		<" + root + ">\r\n";
	str = str + "			<xsl:copy-of select=\""+ folder + "/child::*\"/>\r\n";
	for( e.moveFirst(); ! e.atEnd(); e.moveNext() ) {
		file = e.item();
		str = str + "			<xsl:copy-of select=\"document('" + base.replace( /\\/g, "/" )
+ "/" + folder + "/" + file.name + "')/" + root + "/child::*\"/>\r\n";
	}
	str = str + "		</" + root + ">\r\n";
	str = str + "	</xsl:template>\r\n";
	str = str + "</xsl:stylesheet>\r\n";
	var xsl = new ActiveXObject( "Msxml2.DOMDocument.3.0" );
	xsl.async = false;
	xsl.loadXML( str );
	return xsl.documentElement;
}

/*-------------------------------code changed
end------------------------------------*/


-- 
Configure bugmail: http://bugs.wpkg.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.




More information about the wpkg-users mailing list