[mapguide-users] Re: Help regarding to set filter for a layer programmatically using Java

ar_gaeta ar_gaeta at yahoo.it
Mon Jan 31 03:52:13 EST 2011


Tanks for yours advices. Finally I've solved using the
"DocumentBuilderFactory" method.

//Take the xml file and change attribute tag:
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("C:\\layer.xml);
NodeList nodes = doc.getElementsByTagName("Filter");
Node filter = nodes.item(0);
filter.setTextContent("PROPERTY>5");

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

//initialize StreamResult with File object to save to file
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);	

String xmlString = result.getWriter().toString(); //Riporta a stringa il
contenuto dell'XML
//System.out.println(xmlString);
//out.println("<br>"+xmlString+"<br>");
	
//Write the modification to xml file:
OutputStream f0;
byte buf[] = xmlString.getBytes();	
f0 = new FileOutputStream("C:\\layer2.xml");
for(int i=0;i<buf.length;i++) {
f0.write(buf[i]);
}
f0.close();
buf = null;

//Save the updated layer definition to the session repository using the
ResourceService object.
String filexml = "C:\\layer2.xml";
MgByteSource byteSource = new MgByteSource(filexml);
byteSource.SetMimeType(MgMimeType.Xml);
MgResourceIdentifier tempLayerResId = new MgResourceIdentifier("Session:" +
sessionId + "//templayer.LayerDefinition");
MgByteReader header_byteReader = null;
resourceService.SetResource(tempLayerResId, byteSource.GetReader(),
header_byteReader);

-- 
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Help-regarding-to-set-filter-for-a-layer-programmatically-using-Java-tp3343625p5976493.html
Sent from the MapGuide Users mailing list archive at Nabble.com.


More information about the mapguide-users mailing list