import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class UpdateXml {
static float x_scal=0;
static float y_scal=0;
public static boolean doc2XmlFile(Document document,String filename)
{
boolean flag = true;
try
{
/** 将document中的内容写入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
//transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
}catch(Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
public static Document load(String filename)
{
Document document = null;
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
document=builder.parse(new File(filename));
document.normalize();
}
catch (Exception ex){
ex.printStackTrace();
}
return document;
}
/**
* 演示修改文件的具体某个节点的值
*/
public static void xmlUpdateDemo_x()
{
String path = "./src/dimens_x.xml";
Document document = load(path);
Node root=document.getDocumentElement();
/** 如果root有子元素 */
if(root.hasChildNodes())
{
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循环取得ftp所有节点 */
for (int i=0;i<ftpnodes.getLength();i++)
{
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k=0;k<ftplist.getLength();k++)
{
Node subnode = ftplist.item(k);
if(null == subnode)continue;
String strValue=subnode.getNodeValue();
System.out.println(strValue);
if(strValue.endsWith("dp"))
{
String strTrue= strValue.replace("dp","");
// System.out.println(strTrue);
double fTrue=Float.valueOf(strTrue.trim());
fTrue=(double) (fTrue*x_scal);
BigDecimal b = new BigDecimal(fTrue);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(fTrue);
subnode.setNodeValue(f1+"dp");
}
if(strValue.endsWith("sp"))
{
String strTrue= strValue.replace("sp","");
// System.out.println(strTrue);
double fTrue=Float.valueOf(strTrue.trim());
fTrue=(double) (fTrue*y_scal);
BigDecimal b = new BigDecimal(fTrue);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(fTrue);
subnode.setNodeValue(f1+"sp");
}
}
}
}
String path2="./src/dimens_x_changed.xml";
File file=new File(path2);
if(!file.exists())
{
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
doc2XmlFile(document,path2);
}
public static void xmlUpdateDemo_y()
{
String path = "./src/dimens_y.xml";
Document document = load(path);
Node root=document.getDocumentElement();
/** 如果root有子元素 */
if(root.hasChildNodes())
{
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循环取得ftp所有节点 */
for (int i=0;i<ftpnodes.getLength();i++)
{
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k=0;k<ftplist.getLength();k++)
{
Node subnode = ftplist.item(k);
if(null == subnode)continue;
String strValue=subnode.getNodeValue();
System.out.println(strValue);
if(strValue.endsWith("dp"))
{
String strTrue= strValue.replace("dp","");
// System.out.println(strTrue);
double fTrue=Float.valueOf(strTrue.trim());
fTrue=(double) (fTrue*y_scal);
BigDecimal b = new BigDecimal(fTrue);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(fTrue);
subnode.setNodeValue(f1+"dp");
}
if(strValue.endsWith("sp"))
{
String strTrue= strValue.replace("sp","");
// System.out.println(strTrue);
double fTrue=Float.valueOf(strTrue.trim());
fTrue=(double) (fTrue*y_scal);
BigDecimal b = new BigDecimal(fTrue);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(fTrue);
subnode.setNodeValue(f1+"sp");
}
/** 删除ftp-chn节点 */
// if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="ftp-chn")
// {
// ftpnodes.item(i).removeChild(subnode);
// }
/** 修改ftp-host的值为 192.168.0.1 */
// if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="status")
// {
// subnode.getFirstChild().setNodeValue("1");
// }
}
}
}
String path2="./src/dimens_y_changed.xml";
File file=new File(path2);
if(!file.exists())
{
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
doc2XmlFile(document,path2);
}
public static void main(String args[])throws Exception
{
UpdateXml.x_scal=(float) 0.711;
UpdateXml.y_scal=(float) 0.711;
UpdateXml.xmlUpdateDemo_x();
UpdateXml.xmlUpdateDemo_y();
}
}
/***
*
String strValue=subnode.getNodeValue();
System.out.println(strValue);
if(strValue.endsWith("dp"))
{
String strTrue= strValue.replace("dp","");
System.out.println(strTrue);
float fTrue=Float.valueOf(strTrue.trim());
fTrue=(float) (fTrue*0.445);
System.out.println(fTrue);
subnode.getFirstChild().setNodeValue(fTrue+"dp");
System.out.println(strTrue);
}
*/
dimens tool---quick value
最新推荐文章于 2021-08-04 08:42:07 发布