목차
XML 문서 시각화
XML 파일을 읽고 쓰는 클래스
결론
백엔드 개발 XML/RSS 튜토리얼 XML 문서와 JTree 간 변환 방법

XML 문서와 JTree 간 변환 방법

May 07, 2017 pm 02:08 PM

XML은 구조가 좋기 때문에 문서 형식 정의에 널리 사용됩니다. 우리는 일반적으로 애플리케이션 소프트웨어가 런타임 중에 일부 매개변수를 결정하기 위해 구성 파일을 사용해야 한다는 것을 알고 있습니다. 이전 애플리케이션의 구성 파일은 일반적으로 .ini 파일이었습니다. ini 파일은 오늘날에도 여전히 사용되고 있지만 XML의 출현으로 인해 BEA의 Weblogic 및 IBM의 Websphere와 같은 점점 더 많은 상용 소프트웨어가 XML을 구성 파일 형식으로 사용하고 있습니다. 따라서 소프트웨어 구성 파일을 디자인할 때 구성 파일의 형식으로 XML을 사용하는 것을 점점 더 고려할 것입니다.

구성 파일은 때때로 사용자가 수정해야 하기 때문에 구성 파일 편집을 위한 시각적 형식을 제공하는 것은 소프트웨어의 우수한 사용자 상호 작용을 반영합니다. 우리는 XML 문서에 대한 시각적 방법을 찾아야 합니다. Java 언어의 Swing 구성 요소에 있는 JTree는 XML 문서 시각화에 매우 적합합니다. 둘 사이에는 매우 편리한 변환 방법이 있습니다. 즉, 저장 후 XML 파일의 수정 사항으로 JTree에서 사용자 작업을 쉽게 표시할 수 있고, XML 파일을 JTree로 사용자에게 편리하게 표시할 수도 있습니다.

XML 문서 시각화

XML 문서는 실제로 트리 구조입니다. 예를 들어, 다음 XML 문서는

<?xml version=“1.0”encoding=“GB2312”?>
<skin>
  <skin1>
    <name>古典</name>
    <dir>d:\software\App\skin</dir>
    <head>head1.bmp</head>
    <center>center1.bmp</center>
    <foot>foot1.bmp</foot>
  </skin1>
<skin2>
    <name>现代</name>
    <dir>d:\software\App\skin</dir>
    <head>head2.bmp</head>
    <center>center2.bmp</center>
    <foot>foot2.bmp</foot>
  </skin2>
</skin>
로그인 후 복사

XML 문서가 다중 인터페이스 프로그램 picture 구성 프로그램의 인터페이스임을 알 수 있습니다. JTree를 사용해야 합니다. 얻어지는 것은 아래 그림과 같은 결과입니다.

XML 문서와 JTree 간 변환 방법

그림 시각화 결과

모든 XML 문서는 이러한 Jtree를 생성할 수 있습니다. XML의 Parser와 Java의 JTree 클래스를 사용하면 일반적인 시각적 XML 문서를 구성하여 JTree를 구성할 수 있습니다. XML Parser로 XML 문서를 파싱한 결과 DOM(Document Object Model) 트리가 생성됩니다. 실제로 DOM 트리의 구조는 다음과 같습니다. JTree와 XML Parser 간의 협력을 매우 자연스럽게 만드는 JTree의 구조입니다. 방법은 다음과 같습니다.

XML 파일을 읽고 쓰는 클래스

먼저 다음 주소에서 XML Parser 패키지를 구해야 합니다: http://xml.apache.org/xerces2- j/index.html.
그런 다음 XMLTree 클래스를 설계하고 JTree 클래스 정의에서 를 상속하고 멤버 변수 , 함수 는 다음과 같이 정의됩니다.

public class XMLTree extends JTree{   
    private           DefaultMutableTreeNode      treeNode;  //JTree的根节点
    private           DocumentBuilderFactory     dbf; 
    // 这三个成员变量是xml parser需要的
    private           DocumentBuilder         db; 
    private           Document              doc;  
    XMLTree(String fileName);  
    //构造函数,做初始化工作
    public DefaultMutableTreeNode LoadFile(Node root);     
    //从某个XML文件生成该树
    public void SaveToFile(DefaultMutableTreeNode root,FileWriter fw);     
    //将该树存盘成XML文件
    private Node parseXml( String text )
}
로그인 후 복사

여기서 생성자가 수행하는 초기화 작업은 다음과 같습니다.

XMLTree(String fileName){
      dbf = DocumentBuilderFactory.newInstance(); 
      //生成dbf的实例
      db = dbf.newDocumentBuilder();  
      //生成db的实例
      treeNode = LoadFile( getXMLRoot( text ) );  
      //解析该xml文件,返回JTree的根节点
      setModel( new DefaultTreeModel( treeNode ) );  
      //根据该根节点生成JTree
}
로그인 후 복사

그 중parseXml은 XML 파일의 루트 요소를 반환하는 프로그램으로 다음과 같습니다.

private Node getXMLRoot( String text ){
         ByteArrayInputStream    byteStream;
         byteStream = new ByteArrayInputStream( text.getBytes() ); 
         //将XML文件读到Stream里去
         try{
           doc = db.parse( byteStream );  
           //解析该xml文件。
         } catch ( Exception e )
         { e.printStackTrace();}
         return ( Node )doc.getDocumentElement();
            //返回该XML文件的DOM树的根元素
}
로그인 후 복사

의 핵심 부분은 LoadFile은 재귀적프로세스는 다음과 같습니다.

private DefaultMutableTreeNode createTreeNode( Node root ){
      DefaultMutableTreeNode  treeNode = null; 
         //定义要返回的根节点
      String name = root.getNodeName();
         //获得该节点的NodeName
         String value = root.getNodeValue(); 
         //获得该节点的NodeValue
     treeNode = new DefaultMutableTreeNode( root.
getNodeType() == Node.TEXT_NODE ? value : name );
      //如果为值节点,那么取得该节点的值,否则取得该节点的Tag的名字 
      if ( root.hasChildNodes() ) 
      //如果该节点有孩子节点,那么递归处理该节点的孩子节点
      {  NodeList children = root.getChildNodes();  
        //取得该节点的子节点列表
         if( children != null ){       
         //判断子节点是否为空
          int numChildren = children.getLength();  
           //取得字节数目
            for (int i=0; i < numChildren; i++){  
               Node node = children.item(i); 
                  //循环处理每个子节点
               if( node != null )
               {  if( node.getNodeType() == Node.ELEMENT_NODE )
                  { treeNode.add( createTreeNode(node) ); 
                  //如果该子节点还有孩子节点使用递归的方法处理该子节点
                  } else {
                 String data = node.getNodeValue();
                  if( data != null )
                  {
                     data = data.trim();
                     if ( !data.equals(“\n”) && !data.equals(“\r\n”) && 
data.length() > 0 )
                     {    treeNode.add(new 
DefaultMutableTreeNode(node.getNodeValue()));
                       //如果该节点没有孩子节点,那么直接加到节点下
                       }   
                   }  
                 } 
               } 
            }
         }
      } 
      return treeNode;  //返回节点 }
로그인 후 복사

Java의 Swing 패키지에 있는 메소드를 사용하면 JTree에서 쉽게 변경할 수 있습니다. 팝업 대화 상자 메소드를 사용할 수 있습니다. , 또는 JTree에서 직접 변경할 수 있습니다. 간단히 말해서, JTree가 변경된 후에는 파일에 다시 작성해야 합니다. JTree를 XML 파일에 작성하는 방법은 다음과 같습니다.

public void SaveToFile(DefaultMutableTreeNode, FileWriter fw)
    {try {
      if (root.isLeaf()) fw.write(root.toString()+“\r\n”); 
//如果是叶子节点则直接将该节点输出到文件中
     else { //不是叶子节点的话递归输出该节点
      fw.write(“<”+root.toString()+“>\r\n”); 
     for (int i=0; i < root.getChildCount(); i++)
       { DefaultMutableTreeNode childNode =(DefaultMutableTreeNode) 
root.getChildAt(i);
         saveFile(childNode, fw); 
         //递归输出该节点的所有子节点 }
   fw.write(“</”+root.toString()+“>\r\n”);
    }
      } catch (Exception e)
      {  e.printStackTrace();
      } }
로그인 후 복사

XML 파일에 중국어가 포함되어 있으면 위 함수를 호출하기 전에 다음과 같이 파일에 XML 파일의 인코딩 방법을 입력하십시오.

fw.write(“<?xml version=“1.0” encoding=“GB2312”?>\r\n”);
로그인 후 복사

함수를 호출한 후 다음과 같이 파일도 닫아야 합니다.

rree

결론

XML 파일은 구성 파일 및 정보 전송에 널리 사용됩니다. 시각화 방법에는 여러 가지가 있다. 본 글에서는 Java의 JTree 클래스를 결합하여 구현하는 방법 중 하나를 소개한다. Java 언어와 XML의 좋은 조합으로 인해 Java를 사용하여 XML 프로그램을 컴파일하는 것이 유연하고 편리해졌습니다.

위 내용은 XML 문서와 JTree 간 변환 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

휴대폰에서 XML을 PDF로 변환 할 때 변환 속도가 빠르나요? 휴대폰에서 XML을 PDF로 변환 할 때 변환 속도가 빠르나요? Apr 02, 2025 pm 10:09 PM

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

휴대 전화에서 XML 파일을 PDF로 변환하는 방법은 무엇입니까? 휴대 전화에서 XML 파일을 PDF로 변환하는 방법은 무엇입니까? Apr 02, 2025 pm 10:12 PM

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

휴대 전화에서 XML을 PDF로 변환하는 방법은 무엇입니까? 휴대 전화에서 XML을 PDF로 변환하는 방법은 무엇입니까? Apr 02, 2025 pm 10:18 PM

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

XML을 PDF로 변환 할 수있는 모바일 앱이 있습니까? XML을 PDF로 변환 할 수있는 모바일 앱이 있습니까? Apr 02, 2025 pm 08:54 PM

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

Web.xml을 열는 방법 Web.xml을 열는 방법 Apr 03, 2025 am 06:51 AM

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

권장 XML 서식 도구 권장 XML 서식 도구 Apr 02, 2025 pm 09:03 PM

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

XML 형식을 여는 방법 XML 형식을 여는 방법 Apr 02, 2025 pm 09:00 PM

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

XML 온라인 서식 XML 온라인 서식 Apr 02, 2025 pm 10:06 PM

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

See all articles