java修改xml文档
<?xmlversion="1.0"encoding="utf-8"?><data><province><cityname="湛江"oType="0"alt="2011年...
<?xml version="1.0" encoding="utf-8"?>
<data>
<province>
<city name="湛江" oType="0" alt="2011年1月1日1时"/>
<city name="茂名" oType="1" alt="2011年2月2日2时"/>
<city name="阳江" oType="2" alt="2011年3月3日3时"/>
<city name="云浮" oType="0" alt="2011年4月4日4时"/>
<city name="江门" oType="0" alt="2011年5月5日5时"/>
<city name="肇庆" oType="1" alt="2011年6月6日6时"/>
<city name="佛山" oType="1" alt="2011年7月7日7时"/>
<city name="中山" oType="1" alt="2011年8月8日8时"/>
<city name="珠海" oType="2" alt="2011年9月9日9时"/>
<city name="清远" oType="2" alt="2011年10月10日10时"/>
<city name="广州" oType="1" alt="2011年11月11日11时"/>
<city name="东莞" oType="2" alt="2011年12月12日12时"/>
<city name="深圳" oType="1" alt="2011年11月13日13时"/>
<city name="韶关" oType="0" alt="2011年10月14日14时"/>
<city name="河源" oType="2" alt="2011年10月15日15时"/>
<city name="惠州" oType="2" alt="2011年10月16日16时"/>
<city name="汕尾" oType="1" alt="2011年10月17日17时"/>
<city name="梅州" oType="2" alt="2011年10月18日18时"/>
<city name="揭阳" oType="1" alt="2011年10月19日19时"/>
<city name="潮州" oType="1" alt="2011年10月20日20时"/>
<city name="汕头" oType="2" alt="2011年10月21日21时"/>
</province>
</data>
我想用java修改oType属性和 alt属性的值!求完整代码!!!! 展开
<data>
<province>
<city name="湛江" oType="0" alt="2011年1月1日1时"/>
<city name="茂名" oType="1" alt="2011年2月2日2时"/>
<city name="阳江" oType="2" alt="2011年3月3日3时"/>
<city name="云浮" oType="0" alt="2011年4月4日4时"/>
<city name="江门" oType="0" alt="2011年5月5日5时"/>
<city name="肇庆" oType="1" alt="2011年6月6日6时"/>
<city name="佛山" oType="1" alt="2011年7月7日7时"/>
<city name="中山" oType="1" alt="2011年8月8日8时"/>
<city name="珠海" oType="2" alt="2011年9月9日9时"/>
<city name="清远" oType="2" alt="2011年10月10日10时"/>
<city name="广州" oType="1" alt="2011年11月11日11时"/>
<city name="东莞" oType="2" alt="2011年12月12日12时"/>
<city name="深圳" oType="1" alt="2011年11月13日13时"/>
<city name="韶关" oType="0" alt="2011年10月14日14时"/>
<city name="河源" oType="2" alt="2011年10月15日15时"/>
<city name="惠州" oType="2" alt="2011年10月16日16时"/>
<city name="汕尾" oType="1" alt="2011年10月17日17时"/>
<city name="梅州" oType="2" alt="2011年10月18日18时"/>
<city name="揭阳" oType="1" alt="2011年10月19日19时"/>
<city name="潮州" oType="1" alt="2011年10月20日20时"/>
<city name="汕头" oType="2" alt="2011年10月21日21时"/>
</province>
</data>
我想用java修改oType属性和 alt属性的值!求完整代码!!!! 展开
2个回答
展开全部
最好还是自己写,我这里有个xml处理类 你自己看着写吧, 给个邮箱
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.IOException;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class ParseXML {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("<?xml version=\"1.0\" encoding=\"utf-8\"?> ");
buf.append("<data> ");
buf.append(" <province> ");
buf.append(" <city name=\"湛江\" oType=\"0\" alt=\"2011年1月1日1时\"/> ");
buf.append(" <city name=\"茂名\" oType=\"1\" alt=\"2011年2月2日2时\"/> ");
buf.append(" <city name=\"阳江\" oType=\"2\" alt=\"2011年3月3日3时\"/> ");
buf.append(" <city name=\"云浮\" oType=\"0\" alt=\"2011年4月4日4时\"/> ");
buf.append(" <city name=\"江门\" oType=\"0\" alt=\"2011年5月5日5时\"/> ");
buf.append(" <city name=\"肇庆\" oType=\"1\" alt=\"2011年6月6日6时\"/> ");
buf.append(" <city name=\"佛山\" oType=\"1\" alt=\"2011年7月7日7时\"/> ");
buf.append(" <city name=\"中山\" oType=\"1\" alt=\"2011年8月8日8时\"/> ");
buf.append(" <city name=\"珠海\" oType=\"2\" alt=\"2011年9月9日9时\"/> ");
buf.append(" <city name=\"清远\" oType=\"2\" alt=\"2011年10月10日10时\"/> ");
buf.append(" <city name=\"广州\" oType=\"1\" alt=\"2011年11月11日11时\"/> ");
buf.append(" <city name=\"东莞\" oType=\"2\" alt=\"2011年12月12日12时\"/> ");
buf.append(" <city name=\"深圳\" oType=\"1\" alt=\"2011年11月13日13时\"/> ");
buf.append(" <city name=\"韶关\" oType=\"0\" alt=\"2011年10月14日14时\"/> ");
buf.append(" <city name=\"河源\" oType=\"2\" alt=\"2011年10月15日15时\"/> ");
buf.append(" <city name=\"惠州\" oType=\"2\" alt=\"2011年10月16日16时\"/> ");
buf.append(" <city name=\"汕尾\" oType=\"1\" alt=\"2011年10月17日17时\"/> ");
buf.append(" <city name=\"梅州\" oType=\"2\" alt=\"2011年10月18日18时\"/> ");
buf.append(" <city name=\"揭阳\" oType=\"1\" alt=\"2011年10月19日19时\"/> ");
buf.append(" <city name=\"潮州\" oType=\"1\" alt=\"2011年10月20日20时\"/> ");
buf.append(" <city name=\"汕头\" oType=\"2\" alt=\"2011年10月21日21时\"/> ");
buf.append(" </province> ");
buf.append("</data> ");
StringReader read = new StringReader(buf.toString());
InputSource is = new InputSource(read);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(is);
NodeList list = doc.getElementsByTagName("city");
for(int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
NamedNodeMap attrList = node.getAttributes();
String cityName = attrList.getNamedItem("name").getNodeValue();
if("梅州".equals(cityName)) {
attrList.getNamedItem("oType").setNodeValue("10");
}
System.out.println(attrList.getNamedItem("oType").getNodeValue());
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码大致是这样,代码中只针对<city name="梅州" oType="2" alt="2011年10月18日18时"/>进行了更改,将其oType值改为10。。。
以上代码是用java自带xml解析库解析的,当然第三方的xml操作jar包使用起来要简单的多。比如dom4j、jdom等都对xml操作进行了额封装。。。LZ可以到网上搜索一下其实现代码。。。
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class ParseXML {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("<?xml version=\"1.0\" encoding=\"utf-8\"?> ");
buf.append("<data> ");
buf.append(" <province> ");
buf.append(" <city name=\"湛江\" oType=\"0\" alt=\"2011年1月1日1时\"/> ");
buf.append(" <city name=\"茂名\" oType=\"1\" alt=\"2011年2月2日2时\"/> ");
buf.append(" <city name=\"阳江\" oType=\"2\" alt=\"2011年3月3日3时\"/> ");
buf.append(" <city name=\"云浮\" oType=\"0\" alt=\"2011年4月4日4时\"/> ");
buf.append(" <city name=\"江门\" oType=\"0\" alt=\"2011年5月5日5时\"/> ");
buf.append(" <city name=\"肇庆\" oType=\"1\" alt=\"2011年6月6日6时\"/> ");
buf.append(" <city name=\"佛山\" oType=\"1\" alt=\"2011年7月7日7时\"/> ");
buf.append(" <city name=\"中山\" oType=\"1\" alt=\"2011年8月8日8时\"/> ");
buf.append(" <city name=\"珠海\" oType=\"2\" alt=\"2011年9月9日9时\"/> ");
buf.append(" <city name=\"清远\" oType=\"2\" alt=\"2011年10月10日10时\"/> ");
buf.append(" <city name=\"广州\" oType=\"1\" alt=\"2011年11月11日11时\"/> ");
buf.append(" <city name=\"东莞\" oType=\"2\" alt=\"2011年12月12日12时\"/> ");
buf.append(" <city name=\"深圳\" oType=\"1\" alt=\"2011年11月13日13时\"/> ");
buf.append(" <city name=\"韶关\" oType=\"0\" alt=\"2011年10月14日14时\"/> ");
buf.append(" <city name=\"河源\" oType=\"2\" alt=\"2011年10月15日15时\"/> ");
buf.append(" <city name=\"惠州\" oType=\"2\" alt=\"2011年10月16日16时\"/> ");
buf.append(" <city name=\"汕尾\" oType=\"1\" alt=\"2011年10月17日17时\"/> ");
buf.append(" <city name=\"梅州\" oType=\"2\" alt=\"2011年10月18日18时\"/> ");
buf.append(" <city name=\"揭阳\" oType=\"1\" alt=\"2011年10月19日19时\"/> ");
buf.append(" <city name=\"潮州\" oType=\"1\" alt=\"2011年10月20日20时\"/> ");
buf.append(" <city name=\"汕头\" oType=\"2\" alt=\"2011年10月21日21时\"/> ");
buf.append(" </province> ");
buf.append("</data> ");
StringReader read = new StringReader(buf.toString());
InputSource is = new InputSource(read);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(is);
NodeList list = doc.getElementsByTagName("city");
for(int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
NamedNodeMap attrList = node.getAttributes();
String cityName = attrList.getNamedItem("name").getNodeValue();
if("梅州".equals(cityName)) {
attrList.getNamedItem("oType").setNodeValue("10");
}
System.out.println(attrList.getNamedItem("oType").getNodeValue());
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码大致是这样,代码中只针对<city name="梅州" oType="2" alt="2011年10月18日18时"/>进行了更改,将其oType值改为10。。。
以上代码是用java自带xml解析库解析的,当然第三方的xml操作jar包使用起来要简单的多。比如dom4j、jdom等都对xml操作进行了额封装。。。LZ可以到网上搜索一下其实现代码。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询