-
properties.setProperty(OutputKeys.OMIT_XML_DECLARATION, “yes”);
-
TransformerFactory transformerFactory = TransformerFactory.newInstance();
-
Transformer transformer = transformerFactory.newTransformer();
-
transformer.setOutputProperties(properties);
-
DOMSource domSource = new DOMSource(doc.getDocumentElement());
-
OutputStream output = new ByteArrayOutputStream();
-
StreamResult result = new StreamResult(output);
-
transformer.transform(domSource, result);
-
xmlWriter = output.toString();
-
} catch (ParserConfigurationException e) { // factory.newDocumentBuilder
-
e.printStackTrace();
-
} catch (DOMException e) { // doc.createElement
-
e.printStackTrace();
-
} catch (TransformerFactoryConfigurationError e) { // TransformerFactory.newInstance
-
e.printStackTrace();
-
} catch (TransformerConfigurationException e) { // transformerFactory.newTransformer
-
e.printStackTrace();
-
} catch (TransformerException e) { // transformer.transform
-
e.printStackTrace();
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
savedXML(fileName, xmlWriter.toString());
-
return xmlWriter.toString();
-
}
运行结果:
3、Dom 解析 XML
Dom方式,解析XML是创建XML的逆过程,主要用到了builder.parse(is)进行解析,然后通过Tag、NodeList、Element、childNotes等得到Element和Node属性或值。
Code
[java] view plain copy print ?
-
/** Dom方式,解析 XML */
-
public String domResolveXML() {
-
StringWriter xmlWriter = new StringWriter();
-
InputStream is= readXML(fileName);
-
try {
-
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-
DocumentBuilder builder = factory.newDocumentBuilder();
-
Document doc = builder.parse(is);
-
doc.getDocumentElement().normalize();
-
NodeList nlRoot = doc.getElementsByTagName(“root”);
-
Element eleRoot = (Element)nlRoot.item(0);
-
String attrAuthor = eleRoot.getAttribute(“author”);
-
String attrDate = eleRoot.getAttribute(“date”);
-
xmlWriter.append(“root”).append("\t\t");
-
xmlWriter.append(attrAuthor).append("\t");
-
xmlWriter.append(attrDate).append("\n");
-
NodeList nlPerson = eleRoot.getElementsByTagName(“person”);
-
int personsLen = nlPerson.getLength();
-
Person []persons = new Person[personsLen];
-
for(int i=0; i<personsLen; i++) {
-
Element elePerson = (Element) nlPerson.item(i); // person节点
-
Person person = new Person(); // 创建Person对象
-
NodeList nlId = elePerson.getElementsByTagName(“id”);
-
Element eleId = (Element)nlId.item(0);
-
String id = eleId.getChildNodes().item(0).getNodeValue();
-
person.setId(Integer.parseInt(id));
-
NodeList nlName = elePerson.getElementsByTagName(“name”);
-
Element eleName = (Element)nlName.item(0);
-
String name = eleName.getChildNodes().item(0).getNodeValue();
-
person.setName(name);
-
NodeList nlBlog = elePerson.getElementsByTagName(“blog”);
-
Element eleBlog = (Element)nlBlog.item(0);
-
String blog = eleBlog.getChildNodes().item(0).getNodeValue();
-
person.setBlog(blog);
-
xmlWriter.append(person.toString()).append("\n");
-
persons[i] = person;
-
}
-
} catch (ParserConfigurationException e) { // factory.newDocumentBuilder
-
e.printStackTrace();
-
} catch (SAXException e) { // builder.parse
-
e.printStackTrace();
-
} catch (IOException e) { // builder.parse
-
e.printStackTrace();
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
return xmlWriter.toString();
-
}
运行结果:
4、Person类
Person类,是创建xml的单位实例,基于Java面向对象定义的一个类
[java] view plain copy print ?
-
public class Person {
-
private int id;
-
private String name;
-
private String blog;
-
public Person() {
-
this.id = -1;
-
this.name = “”;
-
this.blog = “”;
-
}
-
public Person(int id, String name, String blog) {
-
this.id = id;
-
this.name = name;
-
this.blog = blog;
-
}
-
public Person(Person person) {
-
this.id = person.id;
-
this.name = person.name;
-
this.blog = person.blog;
-
}
-
public Person getPerson(){
-
return this;
-
}
-
public void setId(int id) {
-
this.id = id;
-
}
-
public int getId(){
-
return this.id;
-
}
-
public void setName(String name) {
-
this.name = name;
-
}
-
public String getName() {
-
return this.name;
-
}
-
public void setBlog(String blog) {
-
this.blog = blog;
-
}
最后
**一个零基础的新人,我认为坚持是最最重要的。**我的很多朋友都找我来学习过,我也很用心的教他们,可是不到一个月就坚持不下来了。我认为他们坚持不下来有两点主要原因:
他们打算入行不是因为兴趣,而是因为所谓的IT行业工资高,或者说完全对未来没有任何规划。
刚开始学的时候确实很枯燥,这确实对你是个考验,所以说坚持下来也很不容易,但是如果你有兴趣就不会认为这是累,不会认为这很枯燥,总之还是贵在坚持。
技术提升遇到瓶颈了?缺高级Android进阶视频学习提升自己吗?还有大量大厂面试题为你面试做准备!
来获取学习资料提升自己去挑战一下BAT面试难关吧
对于很多Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些知识图谱希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
不论遇到什么困难,都不应该成为我们放弃的理由!
如果有什么疑问的可以直接私我,我尽自己最大力量帮助你!
E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
来获取学习资料提升自己去挑战一下BAT面试难关吧
[外链图片转存中…(img-PegKlFNN-1645006837564)]
对于很多Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些知识图谱希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
不论遇到什么困难,都不应该成为我们放弃的理由!
如果有什么疑问的可以直接私我,我尽自己最大力量帮助你!
最后祝各位新人都能坚持下来,学有所成。