일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- orioledb
- maven
- loadcomplete
- HTML Code
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- NestJS
- springboot
- Eclipse
- BRIN
- STS
- NextJs
- 서브라임 텍스트
- Spring Boot
- Spring
- graph database
- MariaDB
- PostgreSQL
- Spring Cloud
- exit code = -805306369
- tortoise SVN
- OGM
- JSP
- Windows 10
- tomcat
- HTML Special Entity
- typeorm
- PG-Strom
- Next.js
- Maven Project
- Today
- Total
Undergoing
[struts] xml에 있는 값 불러오기 본문
Exer.xml(경로 : c:\XMLExer\)
<?xml version="1.0" encoding="UTF-8"?> <struts> <action name="login" class="pene.action.common.ActionExer1" method="hello"> <result name="sucess">/sucess.jsp</result> <result name="fail">/fail.jsp</result> </action> <action name="index" class="pene.action.common.ActionExer2" method="hi"> <result name="sucess">/sucess.jsp</result> <result name="fail">/fail.jsp</result> </action> </struts> |
xmlLoader.java
import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class xmlLoader { public static void main(String[] args) {
try { File fXmlFile = new File("C:\\XMLExer\\file2.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize();
// node 이름 및 자식 노드의 길이 검색 System.out.println(doc.getDocumentElement().getNodeName()); System.out.println("----------");
Element ele = doc.getDocumentElement(); System.out.println(ele.getChildNodes().getLength()); System.out.println("----------");
////////////////////////////////////// // login 가져옴 // //////////////////////////////////////
NodeList nList2 = ele.getChildNodes(); System.out.println(nList2.item(0).getNodeName()); System.out.println("----------");
//action element(login)의 값을 가져옴 NamedNodeMap nnMap = nList2.item(1).getAttributes(); System.out.println(nnMap.getNamedItem("name")); System.out.println(nnMap.getNamedItem("class")); System.out.println(nnMap.getNamedItem("method")); System.out.println("----------");
//attribute name을 제외한 순수 값만을 가져옴(login) Node nameNode = nnMap.getNamedItem("name"); Node classNode = nnMap.getNamedItem("class"); Node methodNode = nnMap.getNamedItem("method"); System.out.println(nameNode.getNodeValue()); System.out.println(classNode.getNodeValue()); System.out.println(methodNode.getNodeValue()); System.out.println("----------");
//action element의 첫번째 자식 element를 가져옴 NodeList nNodelist1 = nList2.item(1).getChildNodes(); nNodelist1.item(1); System.out.println(nNodelist1.item(1)); System.out.println("----------");
NamedNodeMap sucMap = nNodelist1.item(1).getAttributes();
System.out.println(sucMap.getNamedItem("name")); System.out.println("----------"); System.out.println(sucMap.getNamedItem("name").getNodeValue()); System.out.println("----------");
//action element의 두번째 자식 element를 가져옴 NodeList nNodelist11 = nList2.item(3).getChildNodes(); nNodelist11.item(1); System.out.println(nNodelist11.item(1)); System.out.println("----------");
NamedNodeMap failMap = nNodelist1.item(3).getAttributes(); System.out.println("----------"); System.out.println(failMap.getNamedItem("name")); System.out.println("----------"); System.out.println(failMap.getNamedItem("name").getNodeValue()); System.out.println("----------");
////////////////////////////////////// // index 가져옴 // //////////////////////////////////////
//action element(index)의 값을 가져옴 NamedNodeMap nnMap1 = nList2.item(3).getAttributes(); System.out.println(nnMap1.getNamedItem("name")); System.out.println(nnMap1.getNamedItem("class")); System.out.println(nnMap1.getNamedItem("method")); System.out.println("----------");
//attribute name을 제외한 순수 값만을 가져옴(index) Node nameNode1 = nnMap1.getNamedItem("name"); Node classNode1 = nnMap1.getNamedItem("class"); Node methodNode1 = nnMap1.getNamedItem("method"); System.out.println(nameNode1.getNodeValue()); System.out.println(classNode1.getNodeValue()); System.out.println(methodNode1.getNodeValue()); System.out.println("----------");
//action element의 두번째 자식 element를 가져옴 NodeList nNodelist2 = nList2.item(3).getChildNodes(); nNodelist2.item(1); System.out.println(nNodelist2.item(1)); System.out.println("----------");
NamedNodeMap sucMap1 = nNodelist2.item(1).getAttributes(); System.out.println(sucMap1.getNamedItem("name")); System.out.println("----------"); System.out.println(sucMap1.getNamedItem("name").getNodeValue()); System.out.println("----------");
NamedNodeMap failMap1 = nNodelist2.item(3).getAttributes();
System.out.println(failMap.getNamedItem("name")); System.out.println("----------"); System.out.println(failMap.getNamedItem("name").getNodeValue()); System.out.println("----------");
}catch(Exception e){e.printStackTrace();} } } |
결과
null값 찍히는 부분은 다시 한 번 봐야겠다.
같은 action 영역이라고 생각했는데 두 번째 action 영역은 2가 아니라 3이더라.
'개발 > Web Development' 카테고리의 다른 글
[Struts2] 취약점 관련 Struts 2.3.15.1로 라이브러리 변경 (3) | 2013.07.19 |
---|---|
[Spring MVC/Tomcat] Tomcat 재기동시 페이지 접근 에러 발생 (0) | 2012.11.06 |
web.xml 거치지 않고 Servlet 내에서 해결하기 (0) | 2012.08.28 |
커스텀 액션 - 태그 파일 (0) | 2012.06.05 |
JSTL (0) | 2012.06.01 |