dom4j는 xml 파일을 작동합니다(전체)
프로젝트에서는 매개변수 구성이든 다른 시스템과의 데이터 상호작용이든 xml 파일을 많이 사용합니다.
오늘은 Java에서 dom4j를 사용하여 XML 파일을 조작하는 방법에 대해 이야기하겠습니다.
소개해야 할 패키지:
//文件包 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; //工具包 import java.util.Iterator; import java.util.List; //dom4j包 import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter;
1. XML 파일의 내용을 문자열로 변환
/** * doc2String * 将xml文档内容转为String * @return 字符串 * @param document */ public static String doc2String(Document document) { String s = ""; try { //使用输出流来进行转化 ByteArrayOutputStream out = new ByteArrayOutputStream(); //使用GB2312编码 OutputFormat format = new OutputFormat(" ", true, "GB2312"); XMLWriter writer = new XMLWriter(out, format); writer.write(document); s = out.toString("GB2312"); }catch(Exception ex) { ex.printStackTrace(); } return s; }
2. XML 형식에 맞는 문자열을 변환합니다. XML 문서
/** * string2Document * 将字符串转为Document * @return * @param s xml格式的字符串 */ public static Document string2Document(String s) { Document doc = null; try { doc = DocumentHelper.parseText(s); }catch(Exception ex) { ex.printStackTrace(); } return doc; }
3. 문서 개체를 로컬에 xml 파일로 저장합니다
/** * doc2XmlFile * 将Document对象保存为一个xml文件到本地 * @return true:保存成功 flase:失败 * @param filename 保存的文件名 * @param document 需要保存的document对象 */ public static boolean doc2XmlFile(Document document,String filename) { boolean flag = true; try { /* 将document中的内容写入文件中 */ //默认为UTF-8格式,指定为"GB2312" OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GB2312"); XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format); writer.write(document); writer.close(); }catch(Exception ex) { flag = false; ex.printStackTrace(); } return flag; }
4. 문자열 형식이 xml을 따르지 않는 경우 문자열을 xml 형식으로 저장합니다. 규칙에 따라 실패하면 실패가 반환됩니다.
/** * string2XmlFile * 将xml格式的字符串保存为本地文件,如果字符串格式不符合xml规则,则返回失败 * @return true:保存成功 flase:失败 * @param filename 保存的文件名 * @param str 需要保存的字符串 */ public static boolean string2XmlFile(String str,String filename) { boolean flag = true; try { Document doc = DocumentHelper.parseText(str); flag = doc2XmlFile(doc,filename); }catch (Exception ex) { flag = false; ex.printStackTrace(); } return flag; }
5. xml 문서 로드
/** * load * 载入一个xml文档 * @return 成功返回Document对象,失败返回null * @param uri 文件路径 */ public static Document load(String filename) { Document document = null; try { SAXReader saxReader = new SAXReader(); document = saxReader.read(new File(filename)); } catch (Exception ex){ ex.printStackTrace(); } return document; }
6. 문자열을 xml 파일로 저장하는 방법
/** * xmlWriteDemoByString * 演示String保存为xml文件 */ public void xmlWriteDemoByString() { String s = ""; /** xml格式标题 "<?xml version='1.0' encoding='GB2312'?>" 可以不用写*/ s = "<config>\r\n" +" <ftp name='DongDian'>\r\n" +" <ftp-host>127.0.0.1</ftp-host>\r\n" +" <ftp-port>21</ftp-port>\r\n" +" <ftp-user>cxl</ftp-user>\r\n" +" <ftp-pwd>longshine</ftp-pwd>\r\n" +" <!-- ftp最多尝试连接次数 -->\r\n" +" <ftp-try>50</ftp-try>\r\n" +" <!-- ftp尝试连接延迟时间 -->\r\n" +" <ftp-delay>10</ftp-delay>\r\n" +" </ftp>\r\n" +"</config>\r\n"; //将文件生成到classes文件夹所在的目录里 string2XmlFile(s,"xmlWriteDemoByString.xml"); //将文件生成到classes文件夹里 string2XmlFile(s,"classes/xmlWriteDemoByString.xml"); }
7. 수동으로 문서를 생성하는 방법과 저장하는 방법을 보여줍니다. XML 파일로
/** * 演示手动创建一个Document,并保存为XML文件 */ public void xmlWriteDemoByDocument() { /** 建立document对象 */ Document document = DocumentHelper.createDocument(); /** 建立config根节点 */ Element configElement = document.addElement("config"); /** 建立ftp节点 */ configElement.addComment("东电ftp配置"); Element ftpElement = configElement.addElement("ftp"); ftpElement.addAttribute("name","DongDian"); /** ftp 属性配置 */ Element hostElement = ftpElement.addElement("ftp-host"); hostElement.setText("127.0.0.1"); (ftpElement.addElement("ftp-port")).setText("21"); (ftpElement.addElement("ftp-user")).setText("cxl"); (ftpElement.addElement("ftp-pwd")).setText("longshine"); ftpElement.addComment("ftp最多尝试连接次数"); (ftpElement.addElement("ftp-try")).setText("50"); ftpElement.addComment("ftp尝试连接延迟时间"); (ftpElement.addElement("ftp-delay")).setText("10"); /** 保存Document */ doc2XmlFile(document,"classes/xmlWriteDemoByDocument.xml"); }
8. 파일에서 특정 노드의 값을 읽는 방법을 보여줍니다.
/** * 演示读取文件的具体某个节点的值 */ public static void xmlReadDemo() { Document doc = load("classes/xmlWriteDemoByDocument.xml"); //Element root = doc.getRootElement(); /** 先用xpath查找所有ftp节点 并输出它的name属性值*/ List list = doc.selectNodes("/config/ftp" ); Iterator it = list.iterator(); while(it.hasNext()) { Element ftpElement = (Element)it.next(); System.out.println("ftp_name="+ftpElement.attribute("name").getValue()); } /** 直接用属性path取得name值 */ list = doc.selectNodes("/config/ftp/@name" ); it = list.iterator(); while(it.hasNext()) { Attribute attribute = (Attribute)it.next(); System.out.println("@name="+attribute.getValue()); } /** 直接取得DongDian ftp的 ftp-host 的值 */ list = doc.selectNodes("/config/ftp/ftp-host" ); it = list.iterator(); Element hostElement=(Element)it.next(); System.out.println("DongDian's ftp_host="+hostElement.getText()); }
9. 값이나 속성을 수정하거나 삭제합니다
/** ftp节点删除ftp-host节点 */ ftpElement.remove(hostElement); /** ftp节点删除name属性 */ ftpElement.remove(nameAttribute); /** 修改ftp-host的值 */ hostElement.setText("192.168.0.1"); /** 修改ftp节点name属性的值 */ nameAttribute.setValue("ChiFeng");
위 내용은 dom4j 운영 xml 파일(전체) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











모바일 XML에서 PDF의 속도는 다음 요인에 따라 다릅니다. XML 구조의 복잡성. 모바일 하드웨어 구성 변환 방법 (라이브러리, 알고리즘) 코드 품질 최적화 방법 (효율적인 라이브러리 선택, 알고리즘 최적화, 캐시 데이터 및 다중 스레딩 사용). 전반적으로 절대적인 답변은 없으며 특정 상황에 따라 최적화해야합니다.

단일 애플리케이션으로 휴대 전화에서 직접 XML에서 PDF 변환을 완료하는 것은 불가능합니다. 두 단계를 통해 달성 할 수있는 클라우드 서비스를 사용해야합니다. 1. 클라우드에서 XML을 PDF로 변환하십시오. 2. 휴대 전화에서 변환 된 PDF 파일에 액세스하거나 다운로드하십시오.

휴대 전화에서 XML을 PDF로 직접 변환하는 것은 쉽지 않지만 클라우드 서비스를 통해 달성 할 수 있습니다. 가벼운 모바일 앱을 사용하여 XML 파일을 업로드하고 생성 된 PDF를 수신하고 클라우드 API로 변환하는 것이 좋습니다. Cloud API는 Serverless Computing Services를 사용하고 올바른 플랫폼을 선택하는 것이 중요합니다. XML 구문 분석 및 PDF 생성을 처리 할 때 복잡성, 오류 처리, 보안 및 최적화 전략을 고려해야합니다. 전체 프로세스에는 프론트 엔드 앱과 백엔드 API가 함께 작동해야하며 다양한 기술에 대한 이해가 필요합니다.

Web.xml 파일을 열려면 다음 방법을 사용할 수 있습니다. 텍스트 편집기 (예 : 메모장 또는 문자 메시지)를 사용하여 통합 개발 환경 (예 : Eclipse 또는 NetBeans)을 사용하여 명령을 편집하십시오 (Windows : Notepad Web.xml; Mac/Linux : Open -A Texted web.xml).

XML 서식 도구는 규칙에 따라 코드를 입력하여 가독성과 이해를 향상시킬 수 있습니다. 도구를 선택할 때는 사용자 정의 기능, 특수 상황 처리, 성능 및 사용 편의성에주의하십시오. 일반적으로 사용되는 도구 유형에는 온라인 도구, IDE 플러그인 및 명령 줄 도구가 포함됩니다.

XML을 PDF로 직접 변환하는 응용 프로그램은 근본적으로 다른 두 형식이므로 찾을 수 없습니다. XML은 데이터를 저장하는 데 사용되는 반면 PDF는 문서를 표시하는 데 사용됩니다. 변환을 완료하려면 Python 및 ReportLab과 같은 프로그래밍 언어 및 라이브러리를 사용하여 XML 데이터를 구문 분석하고 PDF 문서를 생성 할 수 있습니다.

대부분의 텍스트 편집기를 사용하여 XML 파일을여십시오. 보다 직관적 인 트리 디스플레이가 필요한 경우 Oxygen XML 편집기 또는 XMLSPy와 같은 XML 편집기를 사용할 수 있습니다. 프로그램에서 XML 데이터를 처리하는 경우 프로그래밍 언어 (예 : Python) 및 XML 라이브러 (예 : XML.etree.elementtree)를 사용하여 구문 분석해야합니다.

XML 온라인 형식 도구는 지저분한 XML 코드를 읽기 쉬운 형식으로 자동 구성하고 형식을 유지 관리합니다. XML의 구문 트리를 구문 분석하고 서식 규칙을 적용함으로써 이러한 도구는 코드의 구조를 최적화하여 유지 관리 가능성과 팀워크 효율성을 향상시킵니다.
