{"id":1632,"date":"2019-05-09T12:00:05","date_gmt":"2019-05-09T03:00:05","guid":{"rendered":"https:\/\/www.bold.ne.jp\/engineer-club\/?p=1632"},"modified":"2025-10-06T17:34:44","modified_gmt":"2025-10-06T08:34:44","slug":"java-xml-read","status":"publish","type":"post","link":"https:\/\/www.bold.ne.jp\/engineer-club\/java-xml-read","title":{"rendered":"Java\u306e\u6a19\u6e96API\u3067XML\u3092\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\uff5c4\u3064\u306e\u8aad\u307f\u8fbc\u307f\u65b9\u6cd5\u3092\u30b5\u30f3\u30d7\u30eb\u3067\u6bd4\u8f03\u3057\u3088\u3046"},"content":{"rendered":"<p><strong>XML(Extensive Markup Language)\u306f\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8a2d\u5b9a\u3092\u66f8\u3044\u305f\u308a\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u9593\u3067\u306e\u30c7\u30fc\u30bf\u9001\u4fe1\u306b\u4f7f\u3046\u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3059\u3002\u6700\u8fd1\u306fJSON\u3084YAML\u306b\u62bc\u3055\u308c\u3066\u306f\u3044\u307e\u3059\u304c\u3001\u305d\u308c\u3067\u3082\u5e45\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3088\u306d\u3002<\/strong><\/p>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u308b\u6642\u306f\u3001<span>XML<\/span>\u3092\u8aad\u3080\u65b9\u6cd5\u3092\u77e5\u3063\u3066\u3044\u308b\u3068\u4fbf\u5229\u3067\u3059\u3002\u591a\u5206\u3001<span>XML<\/span>\u3092\u4f5c\u308b\u3088\u308a\u3082\u8aad\u3080\u6a5f\u4f1a\u306e\u65b9\u304c\u305a\u3063\u3068\u591a\u3044\u3067\u3057\u3087\u3046\u3057\u3001<span>XML<\/span>\u3092\u8aad\u3080\u306e\u306f\u7c21\u5358\u305d\u3046\u306b\u898b\u3048\u3066\u610f\u5916\u3068\u3066\u3053\u305a\u308b\u3082\u306e\u3060\u3063\u305f\u308a\u3059\u308b\u306e\u3067\u3059\u3002<\/p>\n<p>\u3082\u3061\u308d\u3093<span>Java<\/span>\u3067\u306f<span>XML<\/span>\u306e\u8aad\u307f\u8fbc\u307f\u306f\u6a19\u6e96\u6a5f\u80fd\u3068\u3057\u3066\u3042\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001<span>Java<\/span>\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308c\u3070<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u305f\u3081\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u4e00\u7dd2\u306b\u4ed8\u3044\u3066\u304d\u307e\u3059\u306e\u3067\u3001\u4f7f\u3044\u65b9\u3055\u3048\u5c11\u3057\u5b66\u3079\u3070\u3001\u4eca\u3059\u3050\u306b\u3067\u3082\u4f7f\u3044\u59cb\u3081\u3089\u308c\u307e\u3059<span>!!<\/span><\/p>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001<span>Java<\/span>\u3067\u306e<span>XML<\/span>\u306e\u8aad\u307f\u8fbc\u307f\u65b9\u3092\u521d\u5fc3\u8005\u5411\u3051\u306b\u3056\u3063\u3068\u304a\u4f1d\u3048\u3057\u307e\u3059\u3002\u5927\u304d\u304f\u5206\u3051\u3066<span>4<\/span>\u3064\u306e\u3084\u308a\u65b9\u304c\u3042\u308b\u306e\u3067\u3059\u304c\u3001\u305d\u308c\u305e\u308c\u306e\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u901a\u3058\u3066\u3001\u4f7f\u3044\u65b9\u3084\u7279\u5fb4\u3092\u3054\u7406\u89e3\u3044\u305f\u3060\u3051\u308c\u3070\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u203b\u3053\u306e\u8a18\u4e8b\u306e\u30b5\u30f3\u30d7\u30eb\u306f\u3001<span>Java 12<\/span>\u306e\u74b0\u5883\u3067\u52d5\u4f5c\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059<\/p>\n<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">\u76ee\u6b21<\/p><ul class=\"toc_list\"><li><a href=\"#Java_SEAPIXML4\">\uff11\uff0eJava SE\u306e\u6a19\u6e96API\u306b\u306fXML\u3092\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u304c4\u3064\u3042\u308b<\/a><ul><li><a href=\"#-XML\">\uff11-\uff11\uff0e\u3053\u306e\u8a18\u4e8b\u3067\u4f7f\u3046XML\u306e\u7d39\u4ecb<\/a><\/li><li><a href=\"#i\">\uff11-\uff12\uff0e\u3053\u306e\u8a18\u4e8b\u3067\u76ee\u7684\u3068\u3059\u308b\u51fa\u529b\u5185\u5bb9<\/a><\/li><\/ul><\/li><li><a href=\"#DOMDocument_Object_Model\">\uff12\uff0eDOM(Document Object Model)\u3067\u8aad\u307f\u8fbc\u3080<\/a><ul><li><a href=\"#-DOMXML\">\uff12-\uff11\uff0eDOM\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/a><\/li><li><a href=\"#i-2\">\uff12-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/a><\/li><li><a href=\"#-DOM\">\uff12-\uff13\uff0e\u3010\u53c2\u8003\u3011DOM\u3067\u8981\u7d20\u3092\u63a2\u3059\u65b9\u6cd5\u3044\u308d\u3044\u308d<\/a><\/li><\/ul><\/li><li><a href=\"#SAXSimple_API_for_XML_Processing\">\uff13\uff0eSAX(Simple API for XML Processing)\u3067\u8aad\u307f\u8fbc\u3080<\/a><ul><li><a href=\"#-SAXXML\">\uff13-\uff11\uff0eSAX\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/a><\/li><li><a href=\"#i-3\">\uff13-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/a><\/li><li><a href=\"#-SAX\">\uff13-\uff13\uff0e\u3010\u53c2\u8003\u3011SAX\u3067\u306e\u30a4\u30d9\u30f3\u30c8\u306e\u7a2e\u985e<\/a><\/li><\/ul><\/li><li><a href=\"#StAXStreaming_API_for_XML\">\uff14\uff0eStAX(Streaming API for XML)\u3067\u8aad\u307f\u8fbc\u3080<\/a><ul><li><a href=\"#-StAXXMLXMLStreamReader\">\uff14-\uff11\uff0eStAX\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0(XMLStreamReader\u3092\u4f7f\u3046\u65b9\u6cd5)<\/a><\/li><li><a href=\"#-XMLStreamReader\">\uff14-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac(XMLStreamReader)<\/a><\/li><li><a href=\"#-StAXXMLXMLEventReader\">\uff14-\uff13\uff0eStAX\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0(XMLEventReader\u3092\u4f7f\u3046\u65b9\u6cd5)<\/a><\/li><li><a href=\"#-XMLEventReader\">\uff14-\uff14\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac(XMLEventReader)<\/a><\/li><\/ul><\/li><li><a href=\"#XPathXML_Path_Language\">\uff15\uff0eXPath(XML Path Language)\u3067\u8aad\u307f\u8fbc\u3080<\/a><ul><li><a href=\"#-XPathXML\">\uff15-\uff11\uff0eXPath\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/a><\/li><li><a href=\"#i-4\">\uff15-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/a><\/li><li><a href=\"#-XPath\">\uff15-\uff13\uff0e\u3010\u53c2\u8003\u3011XPath\u3067\u306e\u3044\u308d\u3044\u308d\u306a\u691c\u7d22\u306e\u4ed5\u65b9<\/a><\/li><\/ul><\/li><li><a href=\"#JAXBJava_Architecture_for_XML_Binding\">\uff16\uff0e\u3010\u53c2\u8003\u3011JAXB(Java Architecture for XML Binding)\u3067\u8aad\u307f\u8fbc\u3080<\/a><ul><li><a href=\"#-JAXBXML\">\uff16-\uff11\uff0eJAXB\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/a><\/li><li><a href=\"#i-5\">\uff16-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/a><\/li><li><a href=\"#-Java_SE_9JAXB\">\uff16-\uff13\uff0eJava SE 9\u4ee5\u964d\u3067JAXB\u3092\u4f7f\u3046\u65b9\u6cd5<\/a><\/li><\/ul><\/li><li><a href=\"#i-6\">\uff17\uff0e\u3010\u53c2\u8003\u3011\u666e\u901a\u306e\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f+\u6587\u5b57\u5217\u51e6\u7406\u3067\u8aad\u307f\u8fbc\u3080<\/a><ul><li><a href=\"#-XML-2\">\uff17-\uff11\uff0e\u666e\u901a\u306e\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f+\u6587\u5b57\u5217\u51e6\u7406\u3067\u306eXML\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/a><\/li><li><a href=\"#i-7\">\uff17-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/a><\/li><\/ul><\/li><li><a href=\"#i-8\">\uff18\uff0e\u307e\u3068\u3081<\/a><\/li><\/ul><\/div>\n<h2><span id=\"Java_SEAPIXML4\">\uff11\uff0eJava SE\u306e\u6a19\u6e96<span>API<\/span>\u306b\u306f<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u304c<span>4<\/span>\u3064\u3042\u308b<\/span><\/h2>\n<p>Java\u3067<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u306f\u3001<strong>Java SE 12\u306e\u6642\u70b9\u3067\u306f\u4ee5\u4e0b\u306e4\u3064\u304c\u4ee3\u8868\u7684\u3067\u3059<\/strong>\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u65b9\u6cd5\u3067\u540c\u3058<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3093\u3067\u307f\u3066\u3001\u305d\u308c\u305e\u308c\u306e\u65b9\u6cd5\u3067\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u4ed5\u65b9\u304c\u3069\u3046\u9055\u3046\u306e\u304b\u3092\u5b66\u3093\u3067\u3044\u304d\u307e\u3059\u3002<\/p>\n<ul>\n<li><strong>DOM(Document Object Model\u3001\u30c9\u30e0)<\/strong><\/li>\n<li><strong>SAX(Simple API for XML Processing\u3001\u30b5\u30c3\u30af\u30b9)<\/strong><\/li>\n<li><strong>StAX(Streaming API for XML\u3001\u30b9\u30bf\u30c3\u30af\u30b9)<\/strong><\/li>\n<li><strong>XPath(XML Path Language\u3001\u30a8\u30c3\u30af\u30b9\u30d1\u30b9)<\/strong><\/li>\n<\/ul>\n<p>\u306a\u305c<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u306e\u306b<span>4<\/span>\u3064\u3082\u65b9\u6cd5\u304c\u3042\u308b\u306e<span>?<\/span>\u3068\u601d\u308f\u308c\u305f\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002\u306a\u305c\u306a\u3089\u3001\u305d\u308c\u305e\u308c\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4f5c\u308a\u65b9\u306b\u306f\u3001\u5f97\u610f\u30fb\u4e0d\u5f97\u610f\u304c\u3042\u308b\u304b\u3089\u3067\u3059\u3002\u9006\u306b\u8a00\u3048\u3070\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u90fd\u5408\u306b\u5408\u308f\u305b\u3066\u4f7f\u3044\u5206\u3051\u304c\u3067\u304d\u308b\u306e\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e<span>4<\/span>\u3064\u65b9\u6cd5\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u7279\u5fb4\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u306e\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u9806\u756a\u306b\u3054\u89a7\u306b\u306a\u3063\u3066\u3044\u305f\u3060\u3051\u308b\u3068\u3001\u305d\u308c\u3089\u304c\u5177\u4f53\u7684\u306b\u5206\u304b\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr style=\"height: 24px;\">\n<th style=\"width: 10.8808%; height: 24px; border-color: #000000;\"><\/th>\n<th style=\"width: 39.1192%; height: 24px; border-color: #000000;\">\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u4ed5\u65b9<\/th>\n<th style=\"width: 25%; height: 24px; border-color: #000000;\">\u5f97\u610f<\/th>\n<th style=\"width: 25%; height: 24px; border-color: #000000;\">\u4e0d\u5f97\u610f<\/th>\n<\/tr>\n<tr style=\"height: 24px;\">\n<th style=\"width: 10.8808%; height: 24px; border-color: #000000;\">DOM<\/th>\n<td style=\"width: 39.1192%; height: 24px; border-color: #000000;\">XML\u306e\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u524d\u63d0\u306b\u8aad\u307f\u8fbc\u3093\u3060\u308a\u691c\u7d22\u3059\u308b<\/td>\n<td style=\"width: 25%; height: 24px; border-color: #000000;\">\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u4f7f\u3063\u305f\u8981\u7d20\u306e\u691c\u7d22\u3068\u64cd\u4f5c<\/td>\n<td style=\"width: 25%; height: 24px; border-color: #000000;\">\u69cb\u9020\u304c\u5165\u308a\u7d44\u3093\u3060<span>XML<\/span>\u306e\u8aad\u307f\u8fbc\u307f<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<th style=\"width: 10.8808%; height: 24px; border-color: #000000;\">SAX<\/th>\n<td style=\"width: 39.1192%; height: 24px; border-color: #000000;\">\u30a4\u30d9\u30f3\u30c8\u30d9\u30fc\u30b9<\/td>\n<td style=\"width: 25%; height: 24px; border-color: #000000;\">\u5fc5\u8981\u306a\u8981\u7d20\u306e\u60c5\u5831\u3092\u7c21\u5358\u306b\u5f97\u3089\u308c\u308b<\/td>\n<td style=\"width: 25%; height: 24px; border-color: #000000;\">XML\u306e\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u610f\u8b58\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/td>\n<\/tr>\n<tr style=\"height: 22px;\">\n<th style=\"width: 10.8808%; height: 22px; border-color: #000000;\">StAX<\/th>\n<td style=\"width: 39.1192%; height: 22px; border-color: #000000;\">\u30a4\u30d9\u30f3\u30c8\u30d9\u30fc\u30b9<span>(SAX<\/span>\u3068\u306f\u5c11\u3057\u7570\u306a\u308b\u65b9\u6cd5<span>)<\/span><\/td>\n<td style=\"width: 25%; height: 22px; border-color: #000000;\">\u5fc5\u8981\u306a\u8981\u7d20\u306e\u60c5\u5831\u3092\u7c21\u5358\u306b\u5f97\u3089\u308c\u308b<\/td>\n<td style=\"width: 25%; height: 22px; border-color: #000000;\">XML\u306e\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u610f\u8b58\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<th style=\"width: 10.8808%; height: 24px; border-color: #000000;\">XPath<\/th>\n<td style=\"width: 39.1192%; height: 24px; border-color: #000000;\">\u5c02\u7528\u306e\u69cb\u6587\u3067\u5fc5\u8981\u306a\u8981\u7d20\u3092\u6307\u5b9a\u3059\u308b<\/td>\n<td style=\"width: 25%; height: 24px; border-color: #000000;\">\u8aad\u307f\u53d6\u308a\u305f\u3044\u8981\u7d20\u3084\u5c5e\u6027\u3092\u4e00\u56de\u306e\u30af\u30a8\u30ea\u3067\u691c\u7d22\u3067\u304d\u308b<\/td>\n<td style=\"width: 25%; height: 24px; border-color: #000000;\">XPath\u3060\u3051\u3067\u306f\u4f55\u3082\u3067\u304d\u306a\u3044<span>(DOM<\/span>\u306e\u95a2\u9023\u30af\u30e9\u30b9\u306e\u77e5\u8b58\u304c\u5fc5\u8981<span>)<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span id=\"-XML\">\uff11-\uff11\uff0e\u3053\u306e\u8a18\u4e8b\u3067\u4f7f\u3046<span>XML<\/span>\u306e\u7d39\u4ecb<\/span><\/h3>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u4ee5\u4e0b\u306e<span>XML<\/span>\u3092\u5171\u901a\u3057\u3066\u4f7f\u3044\u307e\u3059\u3002\u5185\u5bb9\u306f\u672c<span>(Book)<\/span>\u306e\u4e00\u89a7<span>(BookList)<\/span>\u3067\u3059\u3002\u305d\u308c\u305e\u308c\u306e\u672c\u306f\u3001\u5c5e\u6027\u3068\u3057\u3066<span>ISBN(isbn)<\/span>\u3001\u8457\u8005\u540d<span>(author)<\/span>\u3001\u30bf\u30a4\u30c8\u30eb<span>(title)<\/span>\u304c\u3042\u308a\u3001\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u672c\u6587\u306e\u66f8\u304d\u51fa\u3057\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\r\n&lt;BookList&gt;\r\n\t&lt;Book isbn=\"ISBN978-4-1234-0001-5\" author=\"\u590f\u76ee\u6f31\u77f3\" title=\"\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\"&gt;\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\u3002\u540d\u524d\u306f\u307e\u3060\u306a\u3044\u3002\u3069\u3053\u3067\u751f\u308c\u305f\u304b\u3068\u3093\u3068\u898b\u5f53\u304c\u3064\u304b\u306c\u3002&lt;\/Book&gt;\r\n\t&lt;Book isbn=\"ISBN978-4-1234-0002-2\" author=\"H. P. Lovecraft\" title=\"The Cats of Ulthar\"&gt;It is said that in Ulthar, which lies beyond the river Skai, no man may kill a cat;&lt;\/Book&gt;\r\n\t&lt;Book isbn=\"ISBN978-4-1234-0003-9\" author=\"E. T. A. Hoffmann\" title=\"Lebensansichten des Katers Murr\"&gt;Es ist doch etwas Sch\u00f6nes, Herrliches, Erhabenes um das Leben!&lt;\/Book&gt;\r\n&lt;\/BookList&gt;<\/pre>\n<h3><span id=\"i\">\uff11-\uff12\uff0e\u3053\u306e\u8a18\u4e8b\u3067\u76ee\u7684\u3068\u3059\u308b\u51fa\u529b\u5185\u5bb9<\/span><\/h3>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u5148\u307b\u3069\u306e<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3001\u672c\u306e\u60c5\u5831\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u51fa\u529b\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u3001\u305d\u308c\u305e\u308c\u306e\u65b9\u6cd5\u3067\u4f5c\u308a\u307e\u3059\u3002\u540c\u3058<span>XML<\/span>\u304b\u3089\u540c\u3058\u3053\u3068\u3092\u51fa\u529b\u3059\u308b\u306e\u3067\u3059\u304c\u3001\u304b\u306a\u308a\u9055\u3046\u3084\u308a\u65b9\u306b\u306a\u308a\u307e\u3059\u3088\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">isbn = ISBN978-4-1234-0001-5\r\nauthor = \u590f\u76ee\u6f31\u77f3\r\ntitle = \u543e\u8f29\u306f\u732b\u3067\u3042\u308b\r\ntext = \u543e\u8f29\u306f\u732b\u3067\u3042\u308b\u3002\u540d\u524d\u306f\u307e\u3060\u306a\u3044\u3002\u3069\u3053\u3067\u751f\u308c\u305f\u304b\u3068\u3093\u3068\u898b\u5f53\u304c\u3064\u304b\u306c\u3002\r\n\r\nisbn = ISBN978-4-1234-0002-2\r\nauthor = H. P. Lovecraft\r\ntitle = The Cats of Ulthar\r\ntext = It is said that in Ulthar, which lies beyond the river Skai, no man may kill a cat;\r\n\r\nisbn = ISBN978-4-1234-0003-9\r\nauthor = E. T. A. Hoffmann\r\ntitle = Lebensansichten des Katers Murr\r\ntext = Es ist doch etwas Sch\u00f6nes, Herrliches, Erhabenes um das Leben!<\/pre>\n<h2><span id=\"DOMDocument_Object_Model\">\uff12\uff0eDOM(Document Object Model)\u3067\u8aad\u307f\u8fbc\u3080<\/span><\/h2>\n<p>DOM(Document Object Model)\u306f\u3001HTML\u306a\u3069\u306e\u898f\u683c\u3092\u4f5c\u3063\u3066\u3044\u308bW3C\u304c\u6c7a\u3081\u305fXML\u306e\u64cd\u4f5c\u65b9\u6cd5\u3067\u3059\u3002Java\u306b\u9650\u3089\u305a\u3001\u3044\u308d\u3044\u308d\u306a\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u5171\u901a\u3067\u4f7f\u3048\u308b\u3001<span>XML<\/span>\u306e\u8aad\u307f\u8fbc\u307f\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n<blockquote>\n<p>Document Object Model<\/p>\n<p><a href=\"https:\/\/ja.wikipedia.org\/wiki\/Document_Object_Model\">https:\/\/ja.wikipedia.org\/wiki\/Document_Object_Model<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>W3C Document Object Model<\/p>\n<p><a href=\"https:\/\/www.w3.org\/DOM\/\">https:\/\/www.w3.org\/DOM\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Document Object Model (DOM) Technical Reports<\/p>\n<p><a href=\"https:\/\/www.w3.org\/DOM\/DOMTR\">https:\/\/www.w3.org\/DOM\/DOMTR<\/a><\/p>\n<\/blockquote>\n<p>DOM\u306e\u7279\u5fb4\u306f\u3001<span>XML<\/span>\u306e\u300c\u6728\u69cb\u9020<span>(<\/span>\u30c4\u30ea\u30fc\u69cb\u9020<span>)<\/span>\u300d\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u4e0a\u3067\u305d\u306e\u307e\u307e\u6271\u3048\u308b\u3053\u3068\u3067\u3059\u3002<span>XML<\/span>\u306f\u30eb\u30fc\u30c8\u8981\u7d20\u306b\u5b50\u8981\u7d20\u304c\u3076\u3089\u4e0b\u304c\u308b\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u6301\u3061\u307e\u3059\u304c\u3001<span>DOM<\/span>\u3067\u306f\u305d\u306e\u69cb\u9020\u3042\u308a\u304d\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u3057\u3066\u3044\u304f\u306e\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/451222cfdb1d8585a3fcd0b994caffbb.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/451222cfdb1d8585a3fcd0b994caffbb.png\" alt=\"\u30b5\u30f3\u30d7\u30ebXML\u306e\u69cb\u9020\" width=\"960\" height=\"720\" class=\"alignnone size-full wp-image-1636\" srcset=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/451222cfdb1d8585a3fcd0b994caffbb.png 960w, https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/451222cfdb1d8585a3fcd0b994caffbb-768x576.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><\/p>\n<h3><span id=\"-DOMXML\">\uff12-\uff11\uff0eDOM\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/h3>\n<p>\u3067\u306f\u3001\u65e9\u901f<span>DOM<\/span>\u3092\u4f7f\u3063\u305f<span>Java<\/span>\u3067\u306e<span>XML<\/span>\u306e\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.nio.file.Paths;\r\n\r\nimport javax.xml.parsers.DocumentBuilder;\r\nimport javax.xml.parsers.DocumentBuilderFactory;\r\n\r\nimport org.w3c.dom.Document;\r\nimport org.w3c.dom.Element;\r\nimport org.w3c.dom.NodeList;\r\n\r\npublic class DomSample {\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\t\/\/ 1. DocumentBuilderFactory\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u53d6\u5f97\u3059\u308b\r\n\t\tDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r\n\t\t\/\/ 2. DocumentBuilder\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u53d6\u5f97\u3059\u308b\r\n\t\tDocumentBuilder builder = factory.newDocumentBuilder();\r\n\t\t\/\/ 3. DocumentBuilder\u306bXML\u3092\u8aad\u307f\u8fbc\u307e\u305b\u3001Document\u3092\u4f5c\u308b\r\n\t\tDocument document = builder.parse(Paths.get(\"\/bookList.xml\").toFile());\r\n\t\t\/\/ 4. Document\u304b\u3089\u3001\u30eb\u30fc\u30c8\u8981\u7d20(BookList)\u3092\u53d6\u5f97\u3059\u308b\r\n\t\tElement bookList = document.getDocumentElement();\r\n\t\t\/\/ 5. BookList\u914d\u4e0b\u306b\u3042\u308b\u3001Book\u8981\u7d20\u3092\u53d6\u5f97\u3059\u308b\r\n\t\tNodeList books = bookList.getElementsByTagName(\"Book\");\r\n\r\n\t\t\/\/ 6. \u53d6\u5f97\u3057\u305fBook\u8981\u7d20\u3067\u30eb\u30fc\u30d7\u3059\u308b\r\n\t\tfor (int i = 0; i &lt; books.getLength(); i++) {\r\n\t\t\t\/\/ 7. Book\u8981\u7d20\u3092Element\u306b\u30ad\u30e3\u30b9\u30c8\u3059\u308b\r\n\t\t\tElement book = (Element) books.item(i);\r\n\r\n\t\t\t\/\/ 8. Book\u8981\u7d20\u306e\u5c5e\u6027\u5024\u3068\u3001\u30c6\u30ad\u30b9\u30c8\u30ce\u30fc\u30c9\u306e\u5024\u3092\u53d6\u5f97\u3059\u308b\r\n\t\t\tString isbn = book.getAttribute(\"isbn\");\r\n\t\t\tString title = book.getAttribute(\"title\");\r\n\t\t\tString author = book.getAttribute(\"author\");\r\n\t\t\tString content = book.getTextContent();\r\n\r\n\t\t\tSystem.out.println(\"isbn = \" + isbn);\r\n\t\t\tSystem.out.println(\"author = \" + author);\r\n\t\t\tSystem.out.println(\"title = \" + title);\r\n\t\t\tSystem.out.println(\"text = \" + content);\r\n\t\t\tSystem.out.println();\r\n\t\t}\r\n\t}\r\n}<\/pre>\n<h3><span id=\"i-2\">\uff12-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/span><\/h3>\n<p>\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3053\u3068\u3092\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<ul>\n<li><span>XML<\/span>\u304b\u3089<span>BookList<\/span>\u8981\u7d20\u3092\u53d6\u5f97\u3057\u3066<span>\u2026(4.)<\/span><\/li>\n<li><span>BookList<\/span>\u8981\u7d20\u306e\u4e0b\u306b\u3042\u308b<span>Book<\/span>\u8981\u7d20\u3092\u5168\u3066\u53d6\u5f97\u3057\u3066<span>\u2026(5.)<\/span><\/li>\n<li>\u305d\u308c\u305e\u308c\u306e<span>Book<\/span>\u8981\u7d20\u304b\u3089\u5c5e\u6027\u3068\u30c6\u30ad\u30b9\u30c8\u3092\u53d6\u5f97\u3057\u3066<span>print!!(6. 7. 8.)<\/span><\/li>\n<\/ul>\n<p>\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3001\u30b5\u30f3\u30d7\u30eb<span>XML<\/span>\u306e\u4f55\u304c\u3069\u306e\u5909\u6570\u306b\u5165\u3063\u3066\u3044\u308b\u306e\u304b\u3092\u56f3\u306b\u3057\u307e\u3057\u305f\u3002\u4e0a\u304b\u3089\u9806\u756a\u306b\u81ea\u5206\u306e\u5b50\u8981\u7d20\u3092\u5f97\u3066\u3044\u308b\u306e\u304c\u308f\u304b\u308b\u3067\u3057\u3087\u3046\u304b\u3002\u3053\u308c\u304c\u3001<span>DOM<\/span>\u304c<span>XML<\/span>\u306e\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u30d9\u30fc\u30b9\u306b\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/a17743db831c78ddb9df4c4475ada7d4.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/a17743db831c78ddb9df4c4475ada7d4.png\" alt=\"\u8981\u7d20\u3068DOM\u306e\u30af\u30e9\u30b9\u306e\u5bfe\u5fdc\" width=\"960\" height=\"720\" class=\"alignnone size-full wp-image-1637\" srcset=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/a17743db831c78ddb9df4c4475ada7d4.png 960w, https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/a17743db831c78ddb9df4c4475ada7d4-768x576.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><\/p>\n<p>\u3053\u306e\u3088\u3046\u306b\u3001<span>DOM<\/span>\u3067\u306f<span>XML<\/span>\u306e\u4e00\u90e8\u5206\u3092<span>Document<\/span>\u304b\u3089\u305f\u3069\u3063\u3066\u3044\u3063\u3066\u5fc5\u8981\u306a<span>Element<\/span>\u3092\u63a2\u3057\u51fa\u3057\u3001\u305d\u308c\u3089\u304b\u3089\u30c6\u30ad\u30b9\u30c8\u3084\u5c5e\u6027\u5024\u3092\u53d6\u5f97\u3057\u305f\u308a\u3001\u3055\u3089\u306b\u305d\u306e\u4e2d\u306e<span>Element<\/span>\u3092\u691c\u7d22\u3057\u3066<span>\u2026<\/span>\u3092\u7d9a\u3051\u3066\u3044\u304f\u306e\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/7dbce3bea2507384a6d0af858bdb204e.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/7dbce3bea2507384a6d0af858bdb204e.png\" alt=\"DOM\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306e\u89aa\u5b50\u95a2\u4fc2\" width=\"960\" height=\"720\" class=\"alignnone size-full wp-image-1638\" srcset=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/7dbce3bea2507384a6d0af858bdb204e.png 960w, https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/7dbce3bea2507384a6d0af858bdb204e-768x576.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><\/p>\n<h3><span id=\"-DOM\">\uff12-\uff13\uff0e\u3010\u53c2\u8003\u3011<span>DOM<\/span>\u3067\u8981\u7d20\u3092\u63a2\u3059\u65b9\u6cd5\u3044\u308d\u3044\u308d<\/span><\/h3>\n<p>DOM\u3067\u76ee\u7684\u3068\u3059\u308b\u8981\u7d20\u3092\u63a2\u3059\u306b\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u3084\u308a\u65b9\u304c\u3042\u308a\u307e\u3059\u3002\u57fa\u672c\u306f\u4ee5\u4e0b\u306e\u3069\u308c\u304b\u306b\u306a\u308a\u307e\u3059\u3002\u4eca\u56de\u306e\u4f8b\u3067\u306f<span>2.<\/span>\u3092\u4f7f\u3044\u307e\u3057\u305f\u3002<\/p>\n<ol>\n<li>XML\u306e\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u4e0a\u304b\u3089\u9806\u306b\u305f\u3069\u3063\u3066\u3044\u304f<span>(getChildNodes<\/span>\u306a\u3069\u3067\u305f\u3069\u3063\u3066\u3001\u8981\u7d20\u540d\u3092\u78ba\u8a8d\u3059\u308b<span>)<\/span><\/li>\n<li>getElementsByTagName\u3067\u3001\u30bf\u30b0\u540d\u3092\u6307\u5b9a\u3057\u3066\u63a2\u3059<\/li>\n<li>getElementById\u3067\u3001\u8981\u7d20\u306eID\u3092\u6307\u5b9a\u3057\u3066\u63a2\u3059<\/li>\n<li>DOM\u306eTraversal\u306e\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u305f\u3069\u3063\u3066\u3044\u304f(TreeWalker\u3001NodeIterator\u3001NodeFilter\u306a\u3069) \u203b\u3053\u3053\u3067\u306fDOM\u306eTraversal\u306e\u8a73\u7d30\u306f\u7701\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n<h4>\uff12-\uff13-\uff11\uff0e\u3010\u91cd\u8981\u3011getElementById\u306fID\u5c5e\u6027\u3092\u691c\u7d22\u3059\u308b<\/h4>\n<p>XML\u6587\u66f8\u3078\u306egetElementById\u306f\u5c11\u3057\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002XML\u306e\u69cb\u9020\u3092\u6c7a\u3081\u308b<span>DTD<\/span>\u3084<span>XML Schema<\/span>\u3067\u3001<span>ID<\/span>\u5c5e\u6027\u3068\u3057\u3066\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5c5e\u6027\u3060\u3051\u306b\u6709\u52b9\u3067\u3059\u3002\u6c7a\u3057\u3066\u3001<span>&#8220;id&#8221;<\/span>\u3084<span>&#8220;ID&#8221;<\/span>\u3068\u3044\u3046\u5c5e\u6027\u540d\u3092\u63a2\u3057\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3059\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u3001\u4ee5\u4e0b\u306e<span>DTD<\/span>\u3067\u5c5e\u6027<span>isbn<\/span>\u306e\u5f8c\u308d\u306b<span>&#8220;ID&#8221;<\/span>\u304c\u3042\u308a\u307e\u3059\u3088\u306d\u3002\u3053\u308c\u304c<span>ID<\/span>\u5c5e\u6027\u306e\u6307\u5b9a\u3067\u3001\u3053\u308c\u306b\u3088\u308a<span>isbn<\/span>\u5c5e\u6027\u304c<span>Book<\/span>\u8981\u7d20\u306e<span>ID<\/span>\u5c5e\u6027\u3068\u3057\u3066\u6a5f\u80fd\u3057\u307e\u3059\u3002<span>XML<\/span>\u306b<span>DTD<\/span>\u3092\u7d10\u4ed8\u3051\u3066\u3044\u306a\u3044\u3068<span>getElementById<\/span>\u3067\u306f\u691c\u7d22\u3067\u304d\u307e\u305b\u3093\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">&lt;!DOCTYPE BookList [\r\n\t&lt;!ELEMENT BookList (Book+)&gt;\r\n\t&lt;!ELEMENT Book (#PCDATA)&gt;\r\n\t&lt;!ATTLIST Book\r\n\t\tisbn ID #REQUIRED\r\n\t\tauthor CDATA #REQUIRED\r\n\t\ttitle CDATA #REQUIRED\r\n\t&gt;\r\n]&gt;<\/pre>\n<p>\u540c\u3058\u3053\u3068\u3092<span>XML Schema<\/span>\u3067\u66f8\u3051\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u9014\u4e2d\u306b<span>type=&#8221;xsd:ID&#8221;<\/span>\u3068\u3044\u3046\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u3053\u308c\u3067<span>isbn<\/span>\u5c5e\u6027\u304c<span>ID<\/span>\u5c5e\u6027\u3067\u3042\u308b\u3053\u3068\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">&lt;?xml version=\"1.0\"?&gt;\r\n&lt;xsd:schema xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\r\n\t&lt;xsd:element name=\"BookList\" type=\"BookListType\" \/&gt;\r\n\t&lt;xsd:complexType name=\"BookListType\"&gt;\r\n\t\t&lt;xsd:sequence&gt;\r\n\t\t\t&lt;xsd:element type=\"BookType\" name=\"Book\" maxOccurs=\"unbounded\" minOccurs=\"0\" \/&gt;\r\n\t\t&lt;\/xsd:sequence&gt;\r\n\t&lt;\/xsd:complexType&gt;\r\n\t&lt;xsd:complexType name=\"BookType\"&gt;\r\n\t\t&lt;xsd:simpleContent&gt;\r\n\t\t\t&lt;xsd:extension base=\"xsd:string\"&gt;\r\n\t\t\t\t&lt;xsd:attribute type=\"xsd:ID\" name=\"isbn\" use=\"required\" \/&gt;\r\n\t\t\t\t&lt;xsd:attribute type=\"xsd:string\" name=\"author\" use=\"required\" \/&gt;\r\n\t\t\t\t&lt;xsd:attribute type=\"xsd:string\" name=\"title\" use=\"required\" \/&gt;\r\n\t\t\t&lt;\/xsd:extension&gt;\r\n\t\t&lt;\/xsd:simpleContent&gt;\r\n\t&lt;\/xsd:complexType&gt;\r\n&lt;\/xsd:schema&gt;<\/pre>\n<h2><span id=\"SAXSimple_API_for_XML_Processing\">\uff13\uff0eSAX(Simple API for XML Processing)\u3067\u8aad\u307f\u8fbc\u3080<\/span><\/h2>\n<p>SAX(Simple API for XML Processing)\u306fXML\u3092\u8aad\u307f\u8fbc\u3080\u305f\u3081\u306eAPI\u3067\u3059\u3002SAX\u306e\u7279\u5fb4\u306f\u3001\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u3068\u547c\u3070\u308c\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4ed5\u65b9\u306b\u306a\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n<blockquote>\n<p>SAX<\/p>\n<p><a href=\"http:\/\/www.saxproject.org\/\">http:\/\/www.saxproject.org\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>javax.xml.stream (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/package-summary.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/package-summary.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>javax.xml.stream.events (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/events\/package-summary.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/events\/package-summary.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>javax.xml.stream.util (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/util\/package-summary.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/util\/package-summary.html<\/a><\/p>\n<\/blockquote>\n<p>\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u306e\u30a4\u30e1\u30fc\u30b8\u306f\u3001<span>XML<\/span>\u3092\u5148\u982d\u304b\u3089\u9806\u756a\u306b\u8aad\u3093\u3067\u3044\u3063\u305f\u6642\u306e\u51fa\u6765\u4e8b\u3001\u3064\u307e\u308a\u8981\u7d20\u304c\u51fa\u73fe\u3057\u305f\u3001\u8981\u7d20\u304c\u7d42\u308f\u3063\u305f\u3001\u30c6\u30ad\u30b9\u30c8\u304c\u51fa\u73fe\u3057\u305f\u306a\u3069\u306e\u300c\u30a4\u30d9\u30f3\u30c8\u300d\u3054\u3068\u306b\u3001\u3042\u3089\u304b\u3058\u3081\u6c7a\u3081\u3066\u3042\u308b\u51e6\u7406\u304c\u547c\u3070\u308c\u308b\u3082\u306e\u3067\u3059\u3002<\/p>\n<h3><span id=\"-SAXXML\">\uff13-\uff11\uff0eSAX\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/h3>\n<p>\u3053\u308c\u3082\u767e\u805e\u306f\u4e00\u898b\u306b\u5982\u304b\u305a<span>!! <\/span>\u307e\u305a\u306f<span>SAX<\/span>\u3067<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.nio.file.Paths;\r\n\r\nimport javax.xml.parsers.SAXParser;\r\nimport javax.xml.parsers.SAXParserFactory;\r\n\r\nimport org.xml.sax.Attributes;\r\nimport org.xml.sax.SAXException;\r\nimport org.xml.sax.helpers.DefaultHandler;\r\n\r\npublic class SAXSample extends DefaultHandler {\r\n\tString isbn;\r\n\tString title;\r\n\tString author;\r\n\tString text;\r\n\r\n\tpublic void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {\r\n\t\t\/\/ 5. \u4f55\u304b\u306e\u8981\u7d20\u304c\u59cb\u307e\u3063\u305f\r\n\t\tif (\"Book\".equals(qName)) {\r\n\t\t\t\/\/ \u59cb\u307e\u3063\u305f\u306e\u304cBook\u8981\u7d20\u306a\u3089\u3001\u5c5e\u6027\u3092\u8aad\u307f\u53d6\u3063\u3066\u30d5\u30a3\u30fc\u30eb\u30c9\u3078\u4fdd\u5b58\u3059\u308b\r\n\t\t\tisbn = attributes.getValue(\"isbn\");\r\n\t\t\tauthor = attributes.getValue(\"author\");\r\n\t\t\ttitle = attributes.getValue(\"title\");\r\n\t\t}\r\n\t}\r\n\r\n\tpublic void characters(char[] ch, int start, int length) throws SAXException {\r\n\t\t\/\/ 6. \u30c6\u30ad\u30b9\u30c8\u304c\u51fa\u73fe\u3057\u305f\u306a\u3089\u3001char\u914d\u5217\u3092String\u306b\u3057\u3066\u30d5\u30a3\u30fc\u30eb\u30c9\u3078\u4fdd\u5b58\u3059\u308b\r\n\t\ttext = new String(ch, start, length);\r\n\t}\r\n\r\n\tpublic void endElement(String uri, String localName, String qName) throws SAXException {\r\n\t\t\/\/ 7. \u4f55\u304b\u306e\u8981\u7d20\u304c\u7d42\u308f\u3063\u305f\r\n\t\tif (\"Book\".equals(qName)) {\r\n\t\t\t\/\/ \u7d42\u308f\u3063\u305f\u306e\u304cBook\u8981\u7d20\u306a\u3089\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u4fdd\u5b58\u3057\u305fBook\u8981\u7d20\u306e\u60c5\u5831\u3092\u51fa\u529b\u3059\u308b\r\n\t\t\tSystem.out.println(\"isbn = \" + isbn);\r\n\t\t\tSystem.out.println(\"author = \" + author);\r\n\t\t\tSystem.out.println(\"title = \" + title);\r\n\t\t\tSystem.out.println(\"text = \" + text);\r\n\t\t\tSystem.out.println();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\t\/\/ 1. SAXParserFactory\u3092\u53d6\u5f97\r\n\t\tSAXParserFactory factory = SAXParserFactory.newInstance();\r\n\t\t\/\/ 2. SAXParser\u3092\u53d6\u5f97\r\n\t\tSAXParser parser = factory.newSAXParser();\r\n\t\t\/\/ 3. SAX\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3092\u751f\u6210(\u3053\u306e\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9)\r\n\t\tSAXSample handler = new SAXSample();\r\n\t\t\/\/ 4. SAXParser\u306bXML\u3092\u8aad\u307f\u8fbc\u307e\u305b\u3066\u3001SAX\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306b\u51e6\u7406\u3092\u884c\u308f\u305b\u308b\r\n\t\tparser.parse(Paths.get(\"\/bookList.xml\").toFile(), handler);\r\n\t}\r\n}<\/pre>\n<h3><span id=\"i-3\">\uff13-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/span><\/h3>\n<p>\u3055\u3066\u3001<span>DOM<\/span>\u3068\u306f\u305a\u3044\u3076\u3093\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u5909\u308f\u308a\u307e\u3057\u305f\u3002<span>Book<\/span>\u8981\u7d20\u3092\u63a2\u3057\u3066\u3044\u307e\u305b\u3093\u3057\u3001\u30eb\u30fc\u30d7\u3082\u3042\u308a\u307e\u305b\u3093\u3002\u3067\u3082\u3001\u3053\u308c\u3092\u5b9f\u884c\u3059\u308b\u3068<span>DOM<\/span>\u306e\u5834\u5408\u3068\u540c\u3058\u51fa\u529b\u306b\u306a\u308b\u306e\u3067\u3059<span>\u2026<\/span>\u4e0d\u601d\u8b70\u3067\u3059\u306d\u3002<\/p>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8003\u3048\u65b9\u306f\u3001\u4ee5\u4e0b\u3068\u306a\u308a\u307e\u3059\u3002\u5148\u307b\u3069\u304a\u4f1d\u3048\u3057\u305f\u3068\u304a\u308a\u3001<span>XML<\/span>\u3092\u5148\u982d\u304b\u3089\u8aad\u307f\u53d6\u3063\u3066\u3044\u3063\u3066\u3001\u8981\u7d20\u3084\u30c6\u30ad\u30b9\u30c8\u304c\u51fa\u73fe\u3059\u308b\u3054\u3068\u306b\u3001<span>DefaultHandler<\/span>\u304c\u6301\u3064\u30e1\u30bd\u30c3\u30c9\u306e\u3046\u3061\u3001\u6c7a\u3081\u3089\u308c\u305f\u3082\u306e\u304c\u547c\u3070\u308c\u308b\u306e\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/e78115e026891cfa422fc1453dd2c575.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/e78115e026891cfa422fc1453dd2c575.png\" alt=\"XML\u3068SAX\u306e\u30a4\u30d9\u30f3\u30c8\u767a\u751f\u30bf\u30a4\u30df\u30f3\u30b0\" width=\"960\" height=\"720\" class=\"alignnone size-full wp-image-1639\" srcset=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/e78115e026891cfa422fc1453dd2c575.png 960w, https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/e78115e026891cfa422fc1453dd2c575-768x576.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><\/p>\n<p>\u3067\u3059\u304b\u3089\u3001<span>DOM<\/span>\u3068\u306f\u9055\u3044<span>XML<\/span>\u306e\u69cb\u9020\u3092\u610f\u8b58\u305b\u305a\u306b\u3059\u3080\u306e\u3067\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u6bd4\u8f03\u7684\u7c21\u5358\u3067\u3059\u3002<span>SAX<\/span>\u306e<span>&#8220;Simple&#8221;<\/span>\u306f\u3053\u308c\u3092\u610f\u5473\u3057\u3066\u3044\u307e\u3059\u3002\u51e6\u7406\u3057\u305f\u3044\u8981\u7d20\u306b\u5230\u7740\u3059\u308b\u307e\u3067\u5f85\u3063\u3066\u3001\u5230\u7740\u3057\u305f\u3089\u3084\u308a\u305f\u3044\u3053\u3068\u3092\u3059\u308b\u306e\u3067\u3059\u3002<\/p>\n<p>\u9006\u306b\u3001<span>XML<\/span>\u306e\u69cb\u9020\u3092\u5f37\u304f\u610f\u8b58\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001<span>SAX<\/span>\u306f\u82e6\u624b\u3067\u3059\u3002\u4eca\u51e6\u7406\u3057\u3066\u3044\u308b\u8981\u7d20\u306e\u89aa\u8981\u7d20\u3084\u5b50\u8981\u7d20\u304c\u4f55\u304b\u304c\u3001<span>SAX<\/span>\u3067\u306f\u76f4\u63a5\u308f\u304b\u3089\u306a\u3044\u304b\u3089\u3067\u3059\u3002\u3067\u3059\u306e\u3067\u3001\u30c4\u30ea\u30fc\u69cb\u9020\u3092\u610f\u8b58\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u8907\u96d1\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3><span id=\"-SAX\">\uff13-\uff13\uff0e\u3010\u53c2\u8003\u3011<span>SAX<\/span>\u3067\u306e\u30a4\u30d9\u30f3\u30c8\u306e\u7a2e\u985e<\/span><\/h3>\n<p>SAX\u306e\u30a4\u30d9\u30f3\u30c8\u306e\u767a\u751f\u30bf\u30a4\u30df\u30f3\u30b0\u3092\u307e\u3068\u3081\u307e\u3057\u305f\u3002\u8a73\u3057\u304f\u306f\u4ee5\u4e0b\u306e<span>Javadoc<\/span>\u304b\u3001<span>SAX Project<\/span>\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<span>DefaultHandler<\/span>\u306f\uff5e<span>Handler<\/span>\u3092\u5168\u3066\u7a7a\u3067\u5b9f\u88c5\u3057\u3066\u3044\u308b\u3001\u7d99\u627f\u5143\u3068\u3057\u3066\u4fbf\u5229\u306a\u30af\u30e9\u30b9\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<blockquote>\n<p>ContentHandler (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/ContentHandler.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/ContentHandler.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>DTDHandler (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/DTDHandler.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/DTDHandler.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>EntityResolver (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/EntityResolver.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/EntityResolver.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>ErrorHandler (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/ErrorHandler.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/ErrorHandler.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>DefaultHandler (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/helpers\/DefaultHandler.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/org\/xml\/sax\/helpers\/DefaultHandler.html<\/a><\/p>\n<\/blockquote>\n<div class=\"attention a-3\">\n<p class=\"attention-title\">ContentHandler<\/p>\n<ul>\n<li>startDocument\uff1aXML\u6587\u66f8\u304c\u59cb\u307e\u3063\u305f\u6642<\/li>\n<li>endDocument\uff1aXML\u6587\u66f8\u304c\u7d42\u308f\u3063\u305f\u6642<\/li>\n<li>startElement\uff1a\u8981\u7d20\u304c\u59cb\u307e\u3063\u305f\u6642<\/li>\n<li>endElement\uff1a\u8981\u7d20\u304c\u7d42\u308f\u3063\u305f\u6642<\/li>\n<li>startPrefixMapping\uff1a\u540d\u524d\u7a7a\u9593\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u59cb\u307e\u3063\u305f\u6642<\/li>\n<li>endPrefixMapping\u200b\uff1a\u540d\u524d\u7a7a\u9593\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u7d42\u308f\u3063\u305f\u6642<\/li>\n<li>characters\uff1a\u6587\u5b57\u304c\u51fa\u73fe\u3057\u305f\u6642<\/li>\n<li>ignorableWhitespace\uff1a\u7121\u8996\u3067\u304d\u308b\u7a7a\u767d\u6587\u5b57\u304c\u51fa\u73fe\u3057\u305f\u6642<\/li>\n<li>processingInstruction\uff1a\u51e6\u7406\u547d\u4ee4(&lt;? \uff5e<span> ?&gt;)<\/span>\u304c\u51fa\u73fe\u3057\u305f\u6642<\/li>\n<li>skippedEntity\uff1a\u51e6\u7406\u306b\u5931\u6557\u3057\u305f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304c\u3042\u3063\u305f\u6642<\/li>\n<li>setDocumentLocator\uff1a\u8aad\u307f\u53d6\u3063\u3066\u3044\u308b<span>XML<\/span>\u306e\u6841\u6570\u30fb\u884c\u6570\u304c\u5909\u308f\u3063\u305f\u6642<\/li>\n<\/ul>\n<\/div>\n<div class=\"attention a-3\">\n<p class=\"attention-title\">DTDHandler<\/p>\n<ul>\n<li>notationDecl\uff1a\u8868\u8a18\u6cd5\u5ba3\u8a00(&lt;!NOTATION \uff5e&gt;)\u304c\u51fa\u73fe\u3057\u305f\u6642<\/li>\n<li>unparsedEntityDecl\uff1a\u89e3\u6790\u5bfe\u8c61\u5916\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u5ba3\u8a00\u304c\u51fa\u73fe\u3057\u305f\u6642<\/li>\n<\/ul>\n<\/div>\n<div class=\"attention a-3\">\n<p class=\"attention-title\">EntityResolver<\/p>\n<ul>\n<li>resolveEntity\uff1a\u5916\u90e8\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u89e3\u6c7a\u304c\u5fc5\u8981\u306a\u6642<\/li>\n<\/ul>\n<\/div>\n<div class=\"attention a-3\">\n<p class=\"attention-title\">ErrorHandler<\/p>\n<ul>\n<li>warning\uff1aXML\u306e\u51e6\u7406\u4e2d\u306b\u8b66\u544a\u304c\u767a\u751f\u3057\u305f\u6642<\/li>\n<li>error\u200b\uff1a<span>XML<\/span>\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u6642<\/li>\n<li>fatalError\uff1a<span>XML<\/span>\u306e\u51e6\u7406\u4e2d\u306b\u5fa9\u5e30\u4e0d\u53ef\u80fd\u306a\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u6642<\/li>\n<\/ul>\n<\/div>\n<h2><span id=\"StAXStreaming_API_for_XML\">\uff14\uff0eStAX(Streaming API for XML)\u3067\u8aad\u307f\u8fbc\u3080<\/span><\/h2>\n<p>\u6b21\u306fStAX(Streaming API for XML)\u3067\u3059\u3002\u3053\u308c\u3082DOM\u3084SAX\u3068\u306f\u9055\u3046\u30b9\u30bf\u30a4\u30eb\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u306a\u308a\u307e\u3059\u3002StAX\u306f\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u306a\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u306e\u4e00\u7a2e\u3067\u3059\u304c\u3001<span>SAX<\/span>\u3068\u306f\u30a4\u30d9\u30f3\u30c8\u306e\u53d6\u308a\u6271\u3044\u65b9\u304c\u9055\u3044\u307e\u3059\u3002<\/p>\n<blockquote>\n<p>Streaming API for XML &#8211; \u30a6\u30a3\u30ad\u30da\u30c7\u30a3\u30a2<\/p>\n<p><a href=\"https:\/\/ja.wikipedia.org\/wiki\/Streaming_API_for_XML\">https:\/\/ja.wikipedia.org\/wiki\/Streaming_API_for_XML<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>JSR 173 &#8211; JCP.org<\/p>\n<p><a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=173\">https:\/\/jcp.org\/en\/jsr\/detail?id=173<\/a><\/p>\n<\/blockquote>\n<p>StAX\u306e\u7279\u5fb4\u306f\u4ee5\u4e0b\u306e\u3082\u306e\u3067\u3059\u3002<\/p>\n<ul>\n<li><span>Pull<\/span>\u578b\u3067\u3042\u308b\u3002\u30a4\u30d9\u30f3\u30c8\u306e\u7a2e\u985e\u3092<span>StAX<\/span>\u306e\u30af\u30e9\u30b9\u306b\u805e\u3044\u3066\u3001\u5fc5\u8981\u306a\u51e6\u7406\u3092\u81ea\u5206\u3067\u547c\u3073\u51fa\u3059\u3002<\/li>\n<li><span>Iterator<\/span>\u30d1\u30bf\u30fc\u30f3\u3067\u5b9f\u88c5\u3059\u308b\u3002<span>Iterate<\/span>\u3059\u308b\u8981\u7d20\u306f\u3001<span>XML<\/span>\u3092\u8aad\u3080\u4e0a\u3067\u8d77\u304d\u305f\u30a4\u30d9\u30f3\u30c8\u3067\u3042\u308b\u3002<\/li>\n<li><span>SAX<\/span>\u3088\u308a\u3082\u5236\u9650\u304c\u7de9\u3044\u3002<span>SAX<\/span>\u306e\u3088\u3046\u306b\u6c7a\u307e\u3063\u305f\u30af\u30e9\u30b9<span>(DefaultHandler)<\/span>\u3084\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9<span>(ContentHandler<\/span>\u306a\u3069<span>)<\/span>\u3092\u7d99\u627f\u30fb\u5b9f\u88c5\u3057\u306a\u304f\u3066\u3082\u3044\u3044\u3002<\/li>\n<\/ul>\n<p>\u306a\u304a\u3001<span>StAX<\/span>\u3067\u306f<span>XML<\/span>\u306e\u8aad\u307f\u8fbc\u307f\u306b<span>XMLStreamReader<\/span>\u3068<span>XMLEventReader<\/span>\u306e\u3069\u3061\u3089\u304b\u3092\u4f7f\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u9593\u3067\u3082\u3001\u5c11\u3057\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u4ed5\u65b9\u304c\u9055\u3046\u306e\u3067\u3001\u3053\u3053\u3067\u306f\u4e21\u65b9\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h3><span id=\"-StAXXMLXMLStreamReader\">\uff14-\uff11\uff0eStAX\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<span>(XMLStreamReader<\/span>\u3092\u4f7f\u3046\u65b9\u6cd5<span>)<\/span><\/span><\/h3>\n<p>StAX\u306e<span>XMLStreamReader<\/span>\u3067<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.io.FileInputStream;\r\nimport java.nio.file.Paths;\r\n\r\nimport javax.xml.stream.XMLInputFactory;\r\nimport javax.xml.stream.XMLStreamConstants;\r\nimport javax.xml.stream.XMLStreamReader;\r\n\r\npublic class StAXSample {\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\tXMLStreamReader reader = null;\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ 1.XMLInputFactory\u3092\u53d6\u5f97\u3059\u308b\r\n\t\t\tXMLInputFactory factory = XMLInputFactory.newInstance();\r\n\t\t\t\/\/ 2.XMLStreamReader\u3092\u751f\u6210\u3057\u3001XML\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307e\u305b\u308b\r\n\t\t\treader = factory.createXMLStreamReader(new FileInputStream(Paths.get(\"\/bookList.xml\").toFile()));\r\n\r\n\t\t\tString isbn = null;\r\n\t\t\tString author = null;\r\n\t\t\tString title = null;\r\n\t\t\tStringBuilder text = new StringBuilder();\r\n\r\n\t\t\t\/\/ 3.XMLStreamReader\u306b\u30a4\u30d9\u30f3\u30c8\u304c\u307e\u3060\u3042\u308b\u304b\u805e\u3044\u3066\u3001\u3042\u308b\u306a\u3089\u30eb\u30fc\u30d7\u3092\u7d99\u7d9a\r\n\t\t\twhile (reader.hasNext()) {\r\n\t\t\t\t\/\/ 4.\u6b21\u306e\u30a4\u30d9\u30f3\u30c8\u306b\u7a81\u5165!!\r\n\t\t\t\t\/\/ next\u306e\u623b\u308a\u5024\u306f\u30a4\u30d9\u30f3\u30c8\u7a2e\u985e\u306e\u6570\u5024\u3067\u3001XMLStreamConstants\u3067\u6c7a\u3081\u3089\u308c\u3066\u3044\u308b\r\n\t\t\t\tint eventType = reader.next();\r\n\r\n\t\t\t\tswitch (eventType) {\r\n\t\t\t\t\/\/ 5.\u8981\u7d20\u304c\u59cb\u307e\u3063\u305f\u306a\u3089START_ELEMENT\r\n\t\t\t\tcase XMLStreamConstants.START_ELEMENT:\r\n\t\t\t\t\t\/\/ \u4eca\u51e6\u7406\u3057\u3066\u3044\u308b\u8981\u7d20\u304cBook\u306a\u3089\u3001\u5c5e\u6027\u3092\u8aad\u307f\u8fbc\u3080\r\n\t\t\t\t\tif (\"Book\".equals(reader.getName().getLocalPart())) {\r\n\t\t\t\t\t\tisbn = reader.getAttributeValue(null, \"isbn\");\r\n\t\t\t\t\t\tauthor = reader.getAttributeValue(null, \"author\");\r\n\t\t\t\t\t\ttitle = reader.getAttributeValue(null, \"title\");\r\n\t\t\t\t\t\ttext.setLength(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\/\/ 6.\u30c6\u30ad\u30b9\u30c8\u304c\u51fa\u3066\u6765\u305f\u306a\u3089CHARACTERS\r\n\t\t\t\tcase XMLStreamConstants.CHARACTERS:\r\n\t\t\t\t\ttext.append(reader.getText());\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\/\/ 7.\u8981\u7d20\u304c\u7d42\u308f\u3063\u305f\u306a\u3089END_ELEMENT\r\n\t\t\t\tcase XMLStreamConstants.END_ELEMENT:\r\n\t\t\t\t\t\/\/ \u4eca\u51e6\u7406\u3057\u3066\u3044\u308b\u8981\u7d20\u304cBook\u306a\u3089\u3001\u5c5e\u6027\u3068\u30c6\u30ad\u30b9\u30c8\u3092\u51fa\u529b\u3059\u308b\r\n\t\t\t\t\tif (\"Book\".equals(reader.getName().getLocalPart())) {\r\n\t\t\t\t\t\tSystem.out.println(\"isbn = \" + isbn);\r\n\t\t\t\t\t\tSystem.out.println(\"title = \" + title);\r\n\t\t\t\t\t\tSystem.out.println(\"author = \" + author);\r\n\t\t\t\t\t\tSystem.out.println(\"text = \" + text.toString());\r\n\t\t\t\t\t\tSystem.out.println();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} finally {\r\n\t\t\t\/\/ 8.\u51e6\u7406\u304c\u7d42\u308f\u3063\u305f\u3089\u3001\u5fd8\u308c\u305a\u306bXMLStreamReader\u3092close\u3059\u308b\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}<\/pre>\n<h3><span id=\"-XMLStreamReader\">\uff14-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<span>(XMLStreamReader)<\/span><\/span><\/h3>\n<p>\u5168\u4f53\u306e\u96f0\u56f2\u6c17\u306f<span>SAX<\/span>\u306b\u4f3c\u3066\u3044\u307e\u3059\u3002\u3067\u3082\u3001<span>StAX<\/span>\u3067\u306f\u8d77\u304d\u305f\u30a4\u30d9\u30f3\u30c8\u304c\u4f55\u304b\u3092\u81ea\u5206\u3067\u8abf\u3079\u3066\u3001\u5bfe\u5fdc\u3059\u308b\u51e6\u7406\u3092\u81ea\u5206\u3067\u66f8\u304d\u307e\u3059\u3002\u4e00\u65b9\u3001<span>SAX<\/span>\u3067\u306f\u8d77\u304d\u305f\u30a4\u30d9\u30f3\u30c8\u3054\u3068\u306b\u3001\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306e\u30e1\u30bd\u30c3\u30c9\u304c\u81ea\u52d5\u3067\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/3bbc3f06248de8b086c2b80ead6211a3.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/3bbc3f06248de8b086c2b80ead6211a3.png\" alt=\"XML\u3068StAX\u306e\u30a4\u30d9\u30f3\u30c8\u767a\u751f\u30bf\u30a4\u30df\u30f3\u30b0\" width=\"960\" height=\"720\" class=\"alignnone size-full wp-image-1640\" srcset=\"https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/3bbc3f06248de8b086c2b80ead6211a3.png 960w, https:\/\/www.bold.ne.jp\/engineer-club\/wp-content\/uploads\/2019\/05\/3bbc3f06248de8b086c2b80ead6211a3-768x576.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/a><\/p>\n<p>\u4eca\u3001<span>XML<\/span>\u306e\u3069\u3053\u306b\u3044\u308b\u304b\u306f<span>XMLStreamReader<\/span>\u81ea\u8eab\u304c\u5206\u304b\u3063\u3066\u3044\u307e\u3059\u3002\u307e\u3060\u6b21\u306e\u30a4\u30d9\u30f3\u30c8\u304c\u3042\u308b\u306a\u3089<span>hasNext<\/span>\u306f<span>true<\/span>\u3092\u623b\u3057\u3001<span>next<\/span>\u3059\u308b\u3068\u3069\u306e\u30a4\u30d9\u30f3\u30c8\u304b\u3092<span>XMLStreamConstants<\/span>\u306b\u3042\u308b\u6570\u5b57\u3067\u623b\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n<blockquote>\n<p>\u00a0XMLStreamConstants (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/XMLStreamConstants.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/XMLStreamConstants.html<\/a><\/p>\n<\/blockquote>\n<p>\u305d\u3057\u3066\u3001<span>XMLStreamReader<\/span>\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3079\u3070<span>XML<\/span>\u306e\u60c5\u5831\u3092\u5f97\u3089\u308c\u307e\u3059\u3002\u4eca\u3044\u308b\u306e\u304c\u8981\u7d20\u306a\u3089\u30bf\u30b0\u540d\u304c\u5206\u304b\u308a\u307e\u3059\u3057\u3001\u5c5e\u6027\u306a\u3089\u305d\u306e\u5024\u3001\u30c6\u30ad\u30b9\u30c8\u306a\u3089\u305d\u306e\u6587\u5b57\u5217\u306a\u3069\u3092<span>XMLStreamReader<\/span>\u304c\u6559\u3048\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n<blockquote>\n<p>XMLStreamReader (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/XMLStreamReader.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/XMLStreamReader.html<\/a><\/p>\n<\/blockquote>\n<h3><span id=\"-StAXXMLXMLEventReader\">\uff14-\uff13\uff0eStAX\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<span>(XMLEventReader<\/span>\u3092\u4f7f\u3046\u65b9\u6cd5<span>)<\/span><\/span><\/h3>\n<p>StAX\u306e\u3082\u3046\u4e00\u3064\u306e\u30af\u30e9\u30b9<span>XMLEventReader<\/span>\u3067<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.io.FileInputStream;\r\nimport java.nio.file.Paths;\r\n\r\nimport javax.xml.namespace.QName;\r\nimport javax.xml.stream.XMLEventReader;\r\nimport javax.xml.stream.XMLInputFactory;\r\nimport javax.xml.stream.events.Attribute;\r\nimport javax.xml.stream.events.StartElement;\r\nimport javax.xml.stream.events.XMLEvent;\r\n\r\npublic class StAXSample2 {\r\n\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\tXMLEventReader reader = null;\r\n\r\n\t\ttry {\r\n\t\t\tXMLInputFactory factory = XMLInputFactory.newInstance();\r\n\t\t\treader = factory.createXMLEventReader(new FileInputStream(Paths.get(\"\/bookList.xml\").toFile()));\r\n\r\n\t\t\tString qName = null;\r\n\t\t\tString isbn = null;\r\n\t\t\tString author = null;\r\n\t\t\tString title = null;\r\n\t\t\tString text = null;\r\n\t\t\tQName isbnQname = new QName(\"isbn\");\r\n\t\t\tQName authorQname = new QName(\"author\");\r\n\t\t\tQName titleQname = new QName(\"title\");\r\n\r\n\t\t\twhile (reader.hasNext()) {\r\n\t\t\t\tXMLEvent event = reader.nextEvent();\r\n\r\n\t\t\t\tif (event.isStartElement()) {\r\n\t\t\t\t\tStartElement element = event.asStartElement();\r\n\t\t\t\t\tqName = element.getName().getLocalPart();\r\n\r\n\t\t\t\t\tif (\"Book\".equals(qName)) {\r\n\t\t\t\t\t\tAttribute isbnAttr = element.getAttributeByName(isbnQname);\r\n\t\t\t\t\t\tAttribute titleAttr = element.getAttributeByName(titleQname);\r\n\t\t\t\t\t\tAttribute authorAttr = element.getAttributeByName(authorQname);\r\n\r\n\t\t\t\t\t\tisbn = isbnAttr.getValue();\r\n\t\t\t\t\t\ttitle = titleAttr.getValue();\r\n\t\t\t\t\t\tauthor = authorAttr.getValue();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (event.isCharacters()) {\r\n\t\t\t\t\tif (\"Book\".equals(qName)) {\r\n\t\t\t\t\t\ttext = event.asCharacters().getData();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (event.isEndElement()) {\r\n\t\t\t\t\tif (\"Book\".equals(qName)) {\r\n\t\t\t\t\t\tSystem.out.println(\"isbn = \" + isbn);\r\n\t\t\t\t\t\tSystem.out.println(\"title = \" + title);\r\n\t\t\t\t\t\tSystem.out.println(\"author = \" + author);\r\n\t\t\t\t\t\tSystem.out.println(\"text = \" + text.toString());\r\n\t\t\t\t\t\tSystem.out.println();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tqName = null;\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} finally {\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}<\/pre>\n<h3><span id=\"-XMLEventReader\">\uff14-\uff14\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<span>(XMLEventReader)<\/span><\/span><\/h3>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u6d41\u308c\u306f<span>XMLEventReader<\/span>\u3067\u3082\u3001<span>XMLStreamReader<\/span>\u3068\u540c\u3058\u3067\u3059<span>\u2026<\/span>\u3068\u3044\u3046\u304b\u3001\u308f\u3056\u3068\u540c\u3058\u306b\u3057\u307e\u3057\u305f\u3002<span>XMLStreamReader<\/span>\u306e\u4f8b\u3067\u306f<span>switch<\/span>\u6587\u3067\u3001\u3053\u3061\u3089\u306f<span>if<\/span>\u6587\u3067\u3059\u3002\u3067\u3082\u3001\u305d\u308c\u306f\u672c\u8cea\u7684\u306a\u9055\u3044\u3067\u306f\u306a\u3044\u306e\u3067\u3059\u3002<\/p>\n<p>XMLEventReader\u3067\u306f\u3001\u30a4\u30d9\u30f3\u30c8\u304c<span>XMLEvent<\/span>\u306b\u30ab\u30d7\u30bb\u30eb\u5316\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u304c<span>XMLStreamReader<\/span>\u3068\u306e\u9055\u3044\u3067\u3059\u3002<span>XMLEvent<\/span>\u3092\u4f7f\u3048\u3070\u3001\u30a4\u30d9\u30f3\u30c8\u3078\u306e\u51e6\u7406\u3092\u5225\u306e\u30e1\u30bd\u30c3\u30c9\u3084\u30af\u30e9\u30b9\u306b\u884c\u308f\u305b\u308b\u306e\u304c\u7c21\u5358\u30fb\u5b89\u5168\u306b\u306a\u308b\u306e\u3067\u3059\u3002<\/p>\n<blockquote>\n<p>XMLEventReader (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/XMLEventReader.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/XMLEventReader.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>XMLEvent (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/events\/XMLEvent.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/stream\/events\/XMLEvent.html<\/a><\/p>\n<\/blockquote>\n<p>\u306a\u305c\u304b\u3068\u3044\u3046\u3068\u3001<span>XMLEvent<\/span>\u306b\u306f\u6b21\u306e\u30a4\u30d9\u30f3\u30c8\u306b\u9032\u3081\u308b\u30e1\u30bd\u30c3\u30c9\u304c\u306a\u3044\u306e\u3067\u3001\u4ed6\u306e\u30af\u30e9\u30b9\u3084\u30e1\u30bd\u30c3\u30c9\u306b<span>XMLEvent<\/span>\u3092\u6e21\u3057\u3066\u3082\u3001<span>XML<\/span>\u306e\u8aad\u307f\u53d6\u308a\u3092\u5b89\u5168\u306b\u9032\u3081\u3089\u308c\u307e\u3059\u3002\u3055\u3089\u306b\u3001\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3092\u81ea\u5206\u3067\u3082\u4f5c\u308c\u308b\u306e\u3067\u3059\u3002<\/p>\n<p>XMLStreamReader\u306f<span>hasNext<\/span>\u3084<span>next<\/span>\u304c\u3067\u304d\u308b\u306e\u3067\u3001<span>XMLStreamReader<\/span>\u3092\u5225\u306e\u30af\u30e9\u30b9\u3084\u30e1\u30bd\u30c3\u30c9\u306b\u6e21\u3059\u3068\u3001\u3053\u3063\u305d\u308a\u6b21\u306e\u30a4\u30d9\u30f3\u30c8\u3078\u9032\u3081\u3089\u308c\u307e\u3059\u3002\u305d\u308c\u304c\u5f79\u306b\u7acb\u3064\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u304c\u3001\u30d0\u30b0\u306e\u539f\u56e0\u306b\u3082\u306a\u308a\u304b\u306d\u307e\u305b\u3093\u3002<\/p>\n<h4>\uff14-\uff14-\uff11\uff0e\u3010\u767a\u5c55\u3011<span>XMLEvent<\/span>\u3092\u4f7f\u3063\u305f\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306e\u4f8b<\/h4>\n<p>SAX\u3067\u306e<span>ContentHandler<\/span>\u306e\u3088\u3046\u306a\u30af\u30e9\u30b9\u3092<span>XMLEvent<\/span>\u3067\u7c21\u5358\u306b\u4f5c\u3063\u3066\u307f\u308b\u3068\u3001\u4ee5\u4e0b\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u3046\u3044\u3046\u3082\u306e\u3092\u81ea\u5206\u306e\u90fd\u5408\u306b\u5408\u308f\u305b\u3066\u81ea\u7531\u306b\u4f5c\u308c\u308b\u306e\u304c\u3001<span>XMLEventReader<\/span>\u3084<span>XMLEvent<\/span>\u306e\u3044\u3044\u3068\u3053\u308d\u3067\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.io.FileInputStream;\r\nimport java.nio.file.Path;\r\n\r\nimport javax.xml.stream.XMLEventReader;\r\nimport javax.xml.stream.XMLInputFactory;\r\nimport javax.xml.stream.events.Characters;\r\nimport javax.xml.stream.events.EndElement;\r\nimport javax.xml.stream.events.StartElement;\r\nimport javax.xml.stream.events.XMLEvent;\r\n\r\nabstract class MyContentHandler {\r\n\tfinal void read(Path xml) throws Exception {\r\n\t\tXMLEventReader reader = null;\r\n\r\n\t\ttry {\r\n\t\t\tXMLInputFactory factory = XMLInputFactory.newInstance();\r\n\t\t\treader = factory.createXMLEventReader(new FileInputStream(xml.toFile()));\r\n\r\n\t\t\twhile (reader.hasNext()) {\r\n\t\t\t\tXMLEvent event = reader.nextEvent();\r\n\r\n\t\t\t\tif (event.isStartElement()) {\r\n\t\t\t\t\tstartElement(event.asStartElement());\r\n\t\t\t\t} else if (event.isCharacters()) {\r\n\t\t\t\t\tcharacters(event.asCharacters());\r\n\t\t\t\t} else if (event.isEndElement()) {\r\n\t\t\t\t\tendElement(event.asEndElement());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} finally {\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t\/\/ \u8981\u7d20\u958b\u59cb\u6642\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u62bd\u8c61\u30e1\u30bd\u30c3\u30c9\r\n\tabstract void startElement(StartElement element);\r\n\r\n\t\/\/ \u30c6\u30ad\u30b9\u30c8\u51fa\u73fe\u6642\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u62bd\u8c61\u30e1\u30bd\u30c3\u30c9\r\n\tabstract void characters(Characters characters);\r\n\r\n\t\/\/ \u8981\u7d20\u7d42\u4e86\u6642\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u62bd\u8c61\u30e1\u30bd\u30c3\u30c9\r\n\tabstract void endElement(EndElement element);\r\n}<\/pre>\n<pre class=\"prettyprint lang:default decode:true\">import java.nio.file.Paths;\r\n\r\nimport javax.xml.stream.events.Characters;\r\nimport javax.xml.stream.events.EndElement;\r\nimport javax.xml.stream.events.StartElement;\r\n\r\nclass MyContentHandlerImpl extends MyContentHandler {\r\n\t\/\/ \u8981\u7d20\u958b\u59cb\u6642\u306e\u62bd\u8c61\u30e1\u30bd\u30c3\u30c9\u306e\u5b9f\u88c5\r\n\tvoid startElement(StartElement element) {\r\n\t\tSystem.out.println(element.getName().getLocalPart());\r\n\t}\r\n\r\n\t\/\/ \u30c6\u30ad\u30b9\u30c8\u51fa\u73fe\u6642\u306e\u62bd\u8c61\u30e1\u30bd\u30c3\u30c9\u306e\u5b9f\u88c5\r\n\tvoid characters(Characters characters) {\r\n\t\tSystem.out.println(characters.getData());\r\n\t}\r\n\r\n\t\/\/ \u8981\u7d20\u7d42\u4e86\u6642\u306e\u62bd\u8c61\u30e1\u30bd\u30c3\u30c9\u306e\u5b9f\u88c5\r\n\tvoid endElement(EndElement element) {\r\n\t\tSystem.out.println(element.getName().getLocalPart());\r\n\t}\r\n\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\tnew MyContentHandlerImpl().read(Paths.get(\"\/bookList.xml\"));\r\n\t}\r\n}<\/pre>\n<h2><span id=\"XPathXML_Path_Language\">\uff15\uff0eXPath(XML Path Language)\u3067\u8aad\u307f\u8fbc\u3080<\/span><\/h2>\n<p>XPath\u306f\u4ed6\u306eAPI\u3068\u306f\u5927\u5206\u9055\u3044\u307e\u3059\u3002XPath\u306f<span>XML<\/span>\u306e\u691c\u7d22\u65b9\u6cd5\u306e\u4e00\u3064\u3067\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e<span>SQL<\/span>\u306b\u4f3c\u3066\u3044\u307e\u3059\u3002\u691c\u7d22\u6761\u4ef6\u3092<span>XPath<\/span>\u306e\u69cb\u6587\u3067\u66f8\u3044\u3066<span>XML<\/span>\u306b\u554f\u3044\u5408\u308f\u305b\u308b\u3068\u3001\u6761\u4ef6\u3092\u6e80\u305f\u3059\u8981\u7d20\u3084\u30c6\u30ad\u30b9\u30c8\u304c\u7c21\u5358\u306b\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<blockquote>\n<p>XML Path Language<\/p>\n<p><a href=\"https:\/\/ja.wikipedia.org\/wiki\/XML_Path_Language\">https:\/\/ja.wikipedia.org\/wiki\/XML_Path_Language<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>XML Path Language (XPath)<\/p>\n<p><a href=\"https:\/\/www.w3.org\/TR\/1999\/REC-xpath-19991116\/\">https:\/\/www.w3.org\/TR\/1999\/REC-xpath-19991116\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>javax.xml.xpath (Java SE 11 &amp; JDK 11)<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/xpath\/package-summary.html\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.xml\/javax\/xml\/xpath\/package-summary.html<\/a><\/p>\n<\/blockquote>\n<p>DOM\u3067\u306f\u8981\u7d20\u3092\u9806\u756a\u306b\u305f\u3069\u3063\u305f\u308a\u3001\u30bf\u30b0\u540d\u3084<span>ID<\/span>\u5c5e\u6027\u3067\u306e\u691c\u7d22\u3082\u3067\u304d\u307e\u3059\u3002\u3067\u3082\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u884c\u6570\u306f\u5897\u3048\u3066\u3057\u307e\u3044\u304c\u3061\u3067\u3059\u3002<span>SAX<\/span>\u3084<span>StAX<\/span>\u306f\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u306a\u306e\u3067\u3001\u8981\u7d20\u306e\u89aa\u5b50\u95a2\u4fc2\u3092\u610f\u8b58\u3057\u305f\u51e6\u7406\u306f\u3061\u3087\u3063\u3068\u82e6\u624b\u3067\u3059\u3002<\/p>\n<p>\u3067\u3082\u3001<span>XPath<\/span>\u3067\u306f\u305d\u308c\u3089\u3092\u3059\u3079\u3066\u30af\u30ea\u30a2\u3067\u304d\u307e\u3059\u3002\u6b32\u3057\u3044\u60c5\u5831\u3092\u30c0\u30a4\u30ec\u30af\u30c8\u306b\u3001\u304b\u3064\u77ed\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u884c\u6570\u3067\u5f97\u3089\u308c\u307e\u3059\u3002\u8981\u7d20\u306e\u89aa\u5b50\u95a2\u4fc2\u3067\u691c\u7d22\u3067\u304d\u307e\u3059\u3057\u3001\u5c5e\u6027\u5024\u304c\u4f55\u304b\u3001\u30c6\u30ad\u30b9\u30c8\u306b\u4f55\u304b\u3092\u542b\u3080\u3001\u306a\u3069\u3082\u6307\u5b9a\u3067\u304d\u308b\u306e\u3067\u3059<span>!!<\/span><\/p>\n<h3><span id=\"-XPathXML\">\uff15-\uff11\uff0eXPath\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/h3>\n<p>\u3067\u306f\u3055\u3063\u305d\u304f<span>XPath<\/span>\u3067<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3093\u3067\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.io.FileInputStream;\r\nimport java.nio.file.Paths;\r\n\r\nimport javax.xml.parsers.DocumentBuilder;\r\nimport javax.xml.parsers.DocumentBuilderFactory;\r\nimport javax.xml.xpath.XPath;\r\nimport javax.xml.xpath.XPathConstants;\r\nimport javax.xml.xpath.XPathExpression;\r\nimport javax.xml.xpath.XPathFactory;\r\n\r\nimport org.w3c.dom.Document;\r\nimport org.w3c.dom.Element;\r\nimport org.w3c.dom.NodeList;\r\n\r\npublic class XPathSample {\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\t\/\/ 1.Document\u3092\u4f5c\u308b\u307e\u3067\u306e\u6d41\u308c\u306fDOM\u3068\u540c\u3058\r\n\t\tFileInputStream is = new FileInputStream(Paths.get(\"\/bookList.xml\").toFile());\r\n\t\tDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r\n\t\tDocumentBuilder builder = factory.newDocumentBuilder();\r\n\t\tDocument document = builder.parse(is);\r\n\r\n\t\t\/\/ 2.XPath\u306e\u51e6\u7406\u3092\u5b9f\u884c\u3059\u308bXPath\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u53d6\u5f97\u3059\u308b\r\n\t\tXPath xpath = XPathFactory.newInstance().newXPath();\r\n\t\t\/\/ 3.XPath\u3067\u306e\u691c\u7d22\u6761\u4ef6\u3092\u4f5c\u308b\r\n\t\tXPathExpression expr = xpath.compile(\"\/BookList\/Book\");\r\n\t\t\/\/ 4.Document\u3092XPath\u3067\u691c\u7d22\u3057\u3066\u3001\u7d50\u679c\u3092DOM\u306eNodeList\u3067\u53d7\u3051\u53d6\u308b\r\n\t\tNodeList nodeList = (NodeList) expr.evaluate(document, XPathConstants.NODESET);\r\n\r\n\t\t\/\/ 5.XPath\u3067\u306e\u691c\u7d22\u7d50\u679c\u3092\u6301\u3063\u3066\u3044\u308bNodeList\u306e\u5185\u5bb9\u3067\u30eb\u30fc\u30d7\r\n\t\tfor (int i = 0; i &lt; nodeList.getLength(); i++) {\r\n\t\t\t\/\/ 6.\u8981\u7d20\u3092\u691c\u7d22\u3057\u3066\u3044\u308b\u306e\u3067Node\u306e\u5b9f\u4f53\u306fElement\u3002\u30ad\u30e3\u30b9\u30c8\u3057\u3066\u4f7f\u3046\u3002\r\n\t\t\tElement element = (Element) nodeList.item(i);\r\n\r\n\t\t\t\/\/ 7.Element\u304b\u3089\u5fc5\u8981\u306a\u60c5\u5831\u3092\u53d6\u5f97\u3057\u3066\u51fa\u529b\u3059\u308b\r\n\t\t\tSystem.out.println(\"isbn = \" + element.getAttribute(\"isbn\"));\r\n\t\t\tSystem.out.println(\"title = \" + element.getAttribute(\"title\"));\r\n\t\t\tSystem.out.println(\"author = \" + element.getAttribute(\"author\"));\r\n\t\t\tSystem.out.println(\"text = \" + element.getTextContent());\r\n\t\t\tSystem.out.println();\r\n\t\t}\r\n\t}\r\n}<\/pre>\n<h3><span id=\"i-4\">\uff15-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/span><\/h3>\n<p>XPath\u306f\u691c\u7d22\u306e\u4ed5\u7d44\u307f\u306a\u306e\u3067\u3001<span>XPath<\/span>\u3067\u306f\u691c\u7d22\u6761\u4ef6\u3092\u6307\u5b9a\u3059\u308b\u3060\u3051\u3067\u3001\u691c\u7d22\u7d50\u679c\u306f<span>DOM<\/span>\u306e\u30af\u30e9\u30b9\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u691c\u7d22\u7d50\u679c\u306f<span>NodeList<\/span>\u3067\u623b\u3059\u3088\u3046\u306b\u3001\u691c\u7d22\u3092\u3059\u308b\u6642\u306e\u5f15\u6570\u3067\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30ad\u30e2\u306f\u3001<span>3.<\/span>\u3067\u306e<span>XPath<\/span>\u3067\u306e\u691c\u7d22\u6761\u4ef6\u3067\u3059\u3002\u6587\u5b57\u5217\u3067<span>&#8220;\/BookList\/Book&#8221;<\/span>\u3068\u3042\u308a\u307e\u3059\u3088\u306d\u3002\u3053\u308c\u306f\u300c\u30eb\u30fc\u30c8\u8981\u7d20\u306e<span>BookList<\/span>\u8981\u7d20\u306e\u76f4\u4e0b\u306b\u3042\u308b<span>Book<\/span>\u8981\u7d20\u3092\u5168\u3066\u53d6\u5f97\u3059\u308b\u300d\u3092\u610f\u5473\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u3002<\/p>\n<p>4.\u3067<span>XML<\/span>\u304b\u3089\u691c\u7d22\u3059\u308b\u3068\u3001<span>XPath<\/span>\u3067\u306e\u691c\u7d22\u6761\u4ef6\u306b\u30d2\u30c3\u30c8\u3057\u305f\u30e2\u30ce\u304c\u623b\u308a\u307e\u3059\u3002\u3067\u3059\u304b\u3089\u3001<span>DOM<\/span>\u3067\u306e\u691c\u7d22\u3084<span>SAX<\/span>\u30fb<span>StAX<\/span>\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4f5c\u308a\u65b9\u3068\u306f\u304b\u306a\u308a\u9055\u3044\u307e\u3059\u3088\u306d\u3002\u3053\u308c\u306f<span>SQL<\/span>\u3067\u691c\u7d22\u3057\u3066\u7d50\u679c\u3092\u5f97\u308b\u306e\u3068\u4f3c\u3066\u3044\u307e\u3059\u3002<\/p>\n<h3><span id=\"-XPath\">\uff15-\uff13\uff0e\u3010\u53c2\u8003\u3011<span>XPath<\/span>\u3067\u306e\u3044\u308d\u3044\u308d\u306a\u691c\u7d22\u306e\u4ed5\u65b9<\/span><\/h3>\n<p>\u5148\u7a0b\u306e\u4f8b\u3067\u306f\u8981\u7d20\u306e\u30bf\u30b0\u540d\u3067\u691c\u7d22\u3057\u307e\u3057\u305f\u3002\u3082\u3061\u308d\u3093<span>XPath<\/span>\u3067\u306f\u3082\u3063\u3068\u5225\u306e\u691c\u7d22\u6761\u4ef6\u3082\u4f7f\u3048\u307e\u3059\u3002\u5c5e\u6027\u306e\u5024\u3001\u30c6\u30ad\u30b9\u30c8\u306e\u90e8\u5206\u4e00\u81f4\u306a\u3069\u3067\u3059\u3002\u691c\u7d22\u7d50\u679c\u3068\u3057\u3066\u3082\u3001\u8981\u7d20\u3060\u3051\u3067\u306f\u306a\u304f\u5c5e\u6027\u306e\u5024\u3084\u3001\u30c6\u30ad\u30b9\u30c8\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3082\u3067\u304d\u308b\u306e\u3067\u3059\u3002\u6b32\u3057\u3044\u3082\u306e\u3092<span>XPath<\/span>\u306e\u691c\u7d22\u6761\u4ef6\u3068\u3057\u3066\u6307\u5b9a\u3059\u308c\u3070\u3001\u305d\u308c\u304c\u5f97\u3089\u308c\u307e\u3059\u3002\u306a\u3093\u3068\u306a\u304f\u96f0\u56f2\u6c17\u304c\u5206\u304b\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u591a\u5206\u3001<span>[]<\/span>\u304c\u62bd\u51fa\u6761\u4ef6\u3067\u3001<span>@<\/span>\u304c\u5c5e\u6027\u304b\u306a\u3041<span>\u2026<\/span>\u3068\u3044\u3046\u611f\u3058\u304c\u3057\u307e\u3059\u3088\u306d\u3002<\/p>\n<p><strong><span class=\"f-marker-p\">\u4f8b1: ISBN\u304c&#8221;ISBN978-4-1234-0001-5&#8243;\u306eBook\u8981\u7d20\u3092\u53d6\u5f97\u3059\u308b<\/span><\/strong><\/p>\n<pre class=\"prettyprint lang:default decode:true\">XPathExpression expr2 = xpath.compile(\"\/\/Book[@isbn = 'ISBN978-4-1234-0001-5']\");\r\nElement element2 = (Element) expr2.evaluate(document, XPathConstants.NODE);\r\nSystem.out.println(\"title = \" + element2.getAttribute(\"title\"));<\/pre>\n<p>&nbsp;<\/p>\n<p><strong><span class=\"f-marker-y\">\u4f8b2: \u30c6\u30ad\u30b9\u30c8\u306b&#8221;cat&#8221;\u3092\u542b\u3080Book\u8981\u7d20\u3092\u53d6\u5f97\u3059\u308b<\/span><\/strong><\/p>\n<pre class=\"prettyprint lang:default decode:true\">XPathExpression expr3 = xpath.compile(\"\/\/Book[contains(text(), 'cat')]\");\r\nElement element3 = (Element) expr3.evaluate(document, XPathConstants.NODE);\r\nSystem.out.println(\"title = \" + element3.getAttribute(\"title\"));<\/pre>\n<p>&nbsp;<\/p>\n<p><strong><span class=\"f-marker-w\">\u4f8b3: title\u5c5e\u6027\u304c&#8221;The Cats of Ulthar&#8221;\u3067\u3042\u308bBook\u8981\u7d20\u306eauthor\u5c5e\u6027\u306e\u5024\u3092\u53d6\u5f97\u3059\u308b<\/span><\/strong><\/p>\n<pre class=\"prettyprint lang:default decode:true\">XPathExpression expr4 = xpath.compile(\"\/\/Book[@title = 'The Cats of Ulthar']\/@author\");\r\nString author = (String) expr4.evaluate(document, XPathConstants.STRING);\r\nSystem.out.println(\"author = \" + author);<\/pre>\n<p>&nbsp;<\/p>\n<p><strong><span class=\"f-marker-g\">\u4f8b4: title\u5c5e\u6027\u304c&#8221;The Cats of Ulthar&#8221;\u3067\u3042\u308bBook\u8981\u7d20\u306e\u30c6\u30ad\u30b9\u30c8\u3092\u53d6\u5f97\u3059\u308b<\/span><\/strong><\/p>\n<pre class=\"prettyprint lang:default decode:true\">XPathExpression expr5 = xpath.compile(\"\/\/Book[@title = 'The Cats of Ulthar']\/text()\");\r\nString text = (String) expr5.evaluate(document, XPathConstants.STRING);\r\nSystem.out.println(\"text = \" + text);<\/pre>\n<p>XPath\u3067\u51fa\u6765\u308b\u3053\u3068\u306f\u3001\u5b9f\u306f\u307e\u3060\u307e\u3060\u3053\u3093\u306a\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u3082\u3057\u8208\u5473\u304c\u3042\u308c\u3070\u3001<span>XPath<\/span>\u3092\u3082\u3063\u3068\u6df1\u304f\u5b66\u3093\u3067\u307f\u308b\u3068\u3044\u3044\u3067\u3057\u3087\u3046\u3002\u305d\u3057\u3066\u3001<span>XPath<\/span>\u304c\u5206\u304b\u308c\u3070\u3001\u305d\u306e\u95a2\u9023\u4ed5\u69d8\u3067\u3042\u308b<span>XQuery<\/span>\u306e\u7406\u89e3\u3082\u898b\u3048\u3066\u304d\u307e\u3059\u3088\u3002<\/p>\n<h2><span id=\"JAXBJava_Architecture_for_XML_Binding\">\uff16\uff0e\u3010\u53c2\u8003\u3011JAXB(Java Architecture for XML Binding)\u3067\u8aad\u307f\u8fbc\u3080<\/span><\/h2>\n<p>\u904e\u53bb\u306eJava SE\u3067\u306f\u3001JAXB(Java API for XML Binding)\u3068\u3044\u3046API\u3082\u4f7f\u3048\u307e\u3057\u305f\u3002\u3053\u306e<span>API<\/span>\u306f\u4eca\u3082\u3042\u308a\u307e\u3059\u304c\u3001<span>Java SE 11<\/span>\u304b\u3089\u306f\u524a\u9664\u3055\u308c\u3001\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u5411\u3051\u306e<span>Java EE(<\/span>\u73fe<span>Jakarta EE)<\/span>\u306e\u6a5f\u80fd\u306e\u4f4d\u7f6e\u4ed8\u3051\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>JAXB\u306e\u7279\u5fb4\u306f\u3001<span>XML<\/span>\u306e\u69cb\u9020\u3068<span>Java<\/span>\u306e\u30af\u30e9\u30b9\u3092\u76f4\u63a5\u7d10\u4ed8\u3051\u308b\u3053\u3068\u3067\u3059\u3002<span>XML<\/span>\u3068\u7d10\u4ed8\u3051\u305f\u30af\u30e9\u30b9\u3092\u4f5c\u3063\u3066\u304a\u3051\u3070\u3001<span>JAXB<\/span>\u306e\u30af\u30e9\u30b9\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3060\u3051\u3067\u3001<span>XML<\/span>\u306e\u5185\u5bb9\u304c\u53cd\u6620\u3055\u308c\u305f\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<p>\u3064\u307e\u308a\u3001<span>DOM<\/span>\u3084<span>SAX<\/span>\u3084<span>StAX<\/span>\u306e\u3088\u3046\u306b\u3001<span>XML<\/span>\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u4e0a\u3067\u3042\u308c\u3053\u308c\u3044\u3058\u308a\u56de\u3059\u5fc5\u8981\u306f\u306a\u3044\u306e\u3067\u3059\u3002\u305d\u306e\u4ee3\u308a\u306b\u3001\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u306a\u3069\u3067<span>XML<\/span>\u306e\u69cb\u9020\u3068\u30af\u30e9\u30b9\u3092\u7d10\u4ed8\u3051\u3066\u304a\u304f\u3068\u3044\u3046\u3001\u4e8b\u524d\u4f5c\u696d\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3><span id=\"-JAXBXML\">\uff16-\uff11\uff0eJAXB\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/h3>\n<p>\u3053\u306e\u4f8b\u306e<span>XML<\/span>\u3067\u306f\u3001<span>BookList<\/span>\u3068<span>Book<\/span>\u3068\u3044\u3046\u4e8c\u3064\u306e\u8981\u7d20\u304c\u3042\u308a\u307e\u3059\u3002\u3067\u3059\u306e\u3067\u3001\u4eca\u56de\u306e<span>JAXB<\/span>\u306e\u4f8b\u3067\u306f\u5bfe\u5fdc\u3059\u308b\u4e8c\u3064\u306e\u30af\u30e9\u30b9\u3092<span>XML<\/span>\u306e\u69cb\u9020\u306b\u5408\u308f\u305b\u3066\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.util.List;\r\n\r\nimport javax.xml.bind.annotation.XmlAccessType;\r\nimport javax.xml.bind.annotation.XmlAccessorType;\r\nimport javax.xml.bind.annotation.XmlElement;\r\nimport javax.xml.bind.annotation.XmlRootElement;\r\n\r\n@XmlRootElement(name = \"BookList\")\r\npublic class BookList {\r\n\t@XmlElement(name = \"Book\")\r\n\tList&lt;Book&gt; books;\r\n}<\/pre>\n<pre class=\"prettyprint lang:default decode:true\">import javax.xml.bind.annotation.XmlAttribute;\r\nimport javax.xml.bind.annotation.XmlRootElement;\r\nimport javax.xml.bind.annotation.XmlValue;\r\n\r\n@XmlRootElement(name = \"Book\")\r\npublic class Book {\r\n\t@XmlAttribute\r\n\tString isbn;\r\n\t@XmlAttribute\r\n\tString author;\r\n\t@XmlAttribute\r\n\tString title;\r\n\t@XmlValue\r\n\tString text;\r\n\r\n\tpublic String toString() {\r\n\t\treturn new StringBuilder()\r\n\t\t\t\t.append(\"isbn = \").append(isbn).append('\\n')\r\n\t\t\t\t.append(\"author = \").append(author).append('\\n')\r\n\t\t\t\t.append(\"title = \").append(title).append('\\n')\r\n\t\t\t\t.append(\"text = \").append(text).append(\"\\n\")\r\n\t\t\t\t.toString();\r\n\t}\r\n}<\/pre>\n<pre class=\"prettyprint lang:default decode:true\">import java.nio.file.Paths;\r\n\r\nimport javax.xml.bind.JAXB;\r\n\r\npublic class JAXBSample {\r\n\tpublic static void main(String[] args) {\r\n\t\tBookList bookList = JAXB.unmarshal(Paths.get(\"\/bookList.xml\").toFile(), BookList.class);\r\n\t\tbookList.books.forEach(System.out::println);\r\n\t}\r\n}<\/pre>\n<h3><span id=\"i-5\">\uff16-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/span><\/h3>\n<p>BookList\u306f\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u3057\u3066<span>Book<\/span>\u306e<span>List<\/span>\u3067\u3042\u308b<span>books<\/span>\u3092\u6301\u3063\u3066\u3044\u308b\u3060\u3051\u306e\u30af\u30e9\u30b9\u3067\u3059\u3002<span>books<\/span>\u3078\u3001<span>XmlElement<\/span>\u3067\u3053\u306e<span>List<\/span>\u306e\u5185\u5bb9\u3092<span>Book<\/span>\u3068\u3044\u3046\u8981\u7d20\u3068\u3057\u3066\u51fa\u529b\u3059\u308b\u3088\u3046\u306b\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>Book\u3067\u306f\u3001\u5404\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u8981\u7d20\u306e\u5c5e\u6027\u3068\u3057\u3066\u51fa\u529b\u3059\u308b\u3088\u3046\u3001<span>XmlAttribute<\/span>\u3067\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u5c5e\u6027\u540d\u306f\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5909\u6570\u540d\u304c\u4f7f\u308f\u308c\u307e\u3059\u3002\u3055\u3089\u306b\u3001<span>text<\/span>\u3092\u8981\u7d20\u306e\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u51fa\u529b\u3059\u308b\u3088\u3046<span>XmlValue<\/span>\u3067\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u305d\u3057\u3066\u3001<span>JAXB.unmarshal<\/span>\u306e\u5f15\u6570\u306b<span>XML<\/span>\u3068\u30af\u30e9\u30b9\u3092\u6307\u5b9a\u3059\u308c\u3070\u3001<span>Java<\/span>\u306e\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u3067\u304d\u307e\u3059\u3002\u306a\u304a\u3001\u3053\u306e\u4f8b\u3067\u306f<span>XML<\/span>\u304b\u3089\u8aad\u3093\u3067\u3044\u307e\u3059\u304c\u3001\u9006\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092<span>XML<\/span>\u306b\u3059\u308b\u3053\u3068\u3082\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3067\u304d\u308b\u306e\u3067\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.nio.file.Paths;\r\nimport java.util.ArrayList;\r\n\r\nimport javax.xml.bind.JAXB;\r\n\r\npublic class JAXBSample2 {\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\t\/\/ 1.\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\u3001\u3092Book\u3068\u3057\u3066\u751f\u6210\r\n\t\tBook wagahai = new Book();\r\n\t\twagahai.isbn = \"ISBN978-4-1234-0001-5\";\r\n\t\twagahai.author = \"\u590f\u76ee\u6f31\u77f3\";\r\n\t\twagahai.title = \"\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\";\r\n\t\twagahai.text = \"\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\u3002\u540d\u524d\u306f\u307e\u3060\u306a\u3044\u3002\u3069\u3053\u3067\u751f\u308c\u305f\u304b\u3068\u3093\u3068\u898b\u5f53\u304c\u3064\u304b\u306c\u3002\";\r\n\r\n\t\t\/\/ 2.The Cats of Ulthar\u3001\u3092Book\u3068\u3057\u3066\u751f\u6210\r\n\t\tBook ulthal = new Book();\r\n\t\tulthal.isbn = \"ISBN978-4-1234-0002-2\";\r\n\t\tulthal.author = \"H. P. Lovecraft\";\r\n\t\tulthal.title = \"The Cats of Ulthar\";\r\n\t\tulthal.text = \"It is said that in Ulthar, which lies beyond the river Skai, no man may kill a cat;\";\r\n\r\n\t\t\/\/ 3.Lebensansichten des Katers Murr\u3001\u3092Book\u3068\u3057\u3066\u751f\u6210\r\n\t\tBook murr = new Book();\r\n\t\tmurr.isbn = \"ISBN978-4-1234-0003-9\";\r\n\t\tmurr.author = \"E. T. A. Hoffmann\";\r\n\t\tmurr.title = \"Lebensansichten des Katers Murr\";\r\n\t\tmurr.text = \"Es ist doch etwas Sch\u00f6nes, Herrliches, Erhabenes um das Leben!\";\r\n\r\n\t\t\/\/ 4.BookList\u3092\u751f\u6210\u3057\u3066\u3001\u305d\u308c\u305e\u308c\u306eBook\u3092\u683c\u7d0d\u3059\u308b\r\n\t\tBookList bookList = new BookList();\r\n\t\tbookList.books = new ArrayList&lt;&gt;();\r\n\t\tbookList.books.add(wagahai);\r\n\t\tbookList.books.add(ulthal);\r\n\t\tbookList.books.add(murr);\r\n\r\n\t\t\/\/ 5.JAXB\u3092\u4f7f\u3063\u3066\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u5185\u5bb9\u3092XML\u306b\u3059\u308b!!\r\n\t\tJAXB.marshal(bookList, Paths.get(\"Z:\/marshal.xml\").toFile());\r\n\t}\r\n}<\/pre>\n<h3><span id=\"-Java_SE_9JAXB\">\uff16-\uff13\uff0eJava SE 9\u4ee5\u964d\u3067<span>JAXB<\/span>\u3092\u4f7f\u3046\u65b9\u6cd5<\/span><\/h3>\n<p>Java SE 9\/10\u3067\u306f<span>JAXB<\/span>\u95a2\u9023\u306e\u30af\u30e9\u30b9\u304c\u3042\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u307e\u3060\u3042\u308a\u307e\u3059\u306e\u3067\u3001<span>JAXB<\/span>\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3092<span>add<\/span>\u3059\u308c\u3070\u4f7f\u3048\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001<span>java<\/span>\u30b3\u30de\u30f3\u30c9\u3078\u306e\u5f15\u6570\u306b<span> &#8211;add-modules java.xml.bind <\/span>\u3042\u308b\u3044\u306f<span> &#8211;add-modules java.se.ee <\/span>\u3092\u8ffd\u52a0\u3059\u308c\u3070\u4e00\u5fdc\u306f\u4f7f\u3048\u307e\u3059\u3002<\/p>\n<p>\u3067\u3059\u304c\u3001<span>Java SE 11<\/span>\u304b\u3089\u306f<span>JAXB<\/span>\u95a2\u9023\u306e\u30af\u30e9\u30b9\u304c\u3042\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u81ea\u4f53\u304c\u542b\u307e\u308c\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u306e\u3067\u3001\u3053\u306e<span>add<\/span>\u3059\u308b\u65b9\u6cd5\u306f\u3082\u3046\u4f7f\u3048\u307e\u305b\u3093\u3002\u3069\u3053\u304b\u304b\u3089\u3001<span>JAXB<\/span>\u3067\u4f7f\u3046\u30af\u30e9\u30b9\u3092\u6301\u3063\u3066\u3053\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u306e\u3067\u3059\u3002<\/p>\n<p>JAXB\u3092\u4f7f\u3046\u305f\u3081\u306e<span>API<\/span>\u3084\u5b9f\u884c\u30af\u30e9\u30b9\u306f\u3001\u4f8b\u3048\u3070<span>Maven<\/span>\u3092\u4f7f\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001<span>pom.xml<\/span>\u3078\u4ee5\u4e0b\u306e\u4f9d\u5b58\u5148\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059<span>(<\/span>\u30d0\u30fc\u30b8\u30e7\u30f3\u306f<span>2019\/4<\/span>\u6642\u70b9\u3067\u306e\u6700\u65b0\u306e\u3082\u306e\u3067\u3059<span>)<\/span>\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">&lt;dependency&gt;\r\n    &lt;groupId&gt;javax.xml.bind&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;jaxb-api&lt;\/artifactId&gt;\r\n    &lt;version&gt;2.4.0-b180830.0359&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n\r\n&lt;dependency&gt;\r\n    &lt;groupId&gt;org.glassfish.jaxb&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;jaxb-runtime&lt;\/artifactId&gt;\r\n    &lt;version&gt;2.4.0-b180830.0438&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n\r\n&lt;dependency&gt;\r\n    &lt;groupId&gt;org.glassfish.jaxb&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;jaxb-core&lt;\/artifactId&gt;\r\n    &lt;version&gt;2.3.0.1&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<h2><span id=\"i-6\">\uff17\uff0e\u3010\u53c2\u8003\u3011\u666e\u901a\u306e\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f<span>+<\/span>\u6587\u5b57\u5217\u51e6\u7406\u3067\u8aad\u307f\u8fbc\u3080<\/span><\/h2>\n<p>\u4eca\u307e\u3067\u3054\u7d39\u4ecb\u3057\u3066\u304d\u305f<span>XML<\/span>\u7528\u306e<span>API<\/span>\u3092\u4f7f\u308f\u306a\u304f\u3066\u3082\u3001<span>XML<\/span>\u3092\u8aad\u307f\u8fbc\u3080\u3053\u3068\u306f\u3067\u304d\u307e\u3059\u3002<span>XML<\/span>\u3068\u8a00\u3048\u3069\u3082\u5358\u306a\u308b\u6587\u5b57\u5217\u306e\u96c6\u307e\u308a\u3067\u3059\u304b\u3089\u3001\u3067\u304d\u308b\u3053\u3068\u3092\u5272\u308a\u5207\u3063\u3066\u3057\u307e\u3048\u3070\u3001\u6587\u5b57\u5217\u51e6\u7406\u306e\u7bc4\u56f2\u3067\u5bfe\u5fdc\u3067\u304d\u306a\u304f\u3082\u306a\u3044\u304b\u3089\u3067\u3059\u3002<\/p>\n<p>XML\u306e\u69cb\u9020\u304c\u5206\u304b\u3063\u3066\u3044\u3066\u3001\u304b\u3064\u66f8\u304b\u308c\u65b9\u304c\u7d71\u4e00\u3055\u308c\u3066\u3044\u308c\u3070\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3082\u4f5c\u308c\u307e\u3059\u3002\u3042\u308b\u610f\u5473\u3067\u3001\u51e6\u7406\u5185\u5bb9\u306f\u3068\u3066\u3082\u5206\u304b\u308a\u3084\u3059\u3044\u3067\u3059\u3057\u3001<span>XML<\/span>\u306e\u89e3\u6790\u306f\u6587\u5b57\u5217\u51e6\u7406\u306e\u52c9\u5f37\u3092\u3059\u308b\u306e\u306b\u3061\u3087\u3046\u3069\u3044\u3044\u30c6\u30fc\u30de\u3067\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n<h3><span id=\"-XML-2\">\uff17-\uff11\uff0e\u666e\u901a\u306e\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f<span>+<\/span>\u6587\u5b57\u5217\u51e6\u7406\u3067\u306e<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/h3>\n<p>\u3053\u3053\u3067\u306f\u3001\u666e\u901a\u306e\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u3068\u6b63\u898f\u8868\u73fe\u3092\u4f7f\u3063\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u4f8b\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<span>XML<\/span>\u306e\u4ed5\u69d8\u304b\u3089\u3057\u3066\u307f\u308c\u3070\u6a5f\u80fd\u304c\u8db3\u308a\u306a\u3044\u3068\u3053\u308d\u3060\u3089\u3051\u3067\u3059\u304c\u3001\u5b9f\u7528\u4e0a\u3067\u306f\u3053\u3093\u306a\u3082\u306e\u3067\u3082\u5341\u5206\u4f7f\u3048\u308b\u3082\u306e\u3060\u3063\u305f\u308a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"prettyprint lang:default decode:true\">import java.io.IOException;\r\nimport java.nio.file.Files;\r\nimport java.nio.file.Paths;\r\nimport java.util.regex.Matcher;\r\nimport java.util.regex.Pattern;\r\n\r\npublic class StringSample {\r\n\tpublic static void main(String[] args) throws IOException {\r\n\t\t\/\/ 1. Book\u8981\u7d20\u5168\u4f53\u3068\u30de\u30c3\u30c1\u30f3\u30b0\u3055\u305b\u308b\u305f\u3081\u306e\u6b63\u898f\u8868\u73fe\u3092\u751f\u6210\u3059\u308b\r\n\t\tPattern elemPattern = Pattern.compile(\"&lt;Book (?&lt;attrs&gt;.+)?&gt;(?&lt;text&gt;.+?)&lt;\/Book&gt;\");\r\n\t\t\/\/ 2. Book\u8981\u7d20\u5185\u306e\u5c5e\u6027\u4e00\u89a7\u3068\u30de\u30c3\u30c1\u30f3\u30b0\u3055\u305b\u308b\u305f\u3081\u306e\u6b63\u898f\u8868\u73fe\u3092\u751f\u6210\u3059\u308b\r\n\t\tPattern attrPattern = Pattern.compile(\"(?&lt;attrname&gt;isbn|author|title)=\\\"(?&lt;attrvalue&gt;.+?)\\\"\");\r\n\r\n\t\t\/\/ 3. Files.readAllLines\u3092\u4f7f\u3063\u3066\u3001XML\u3092\u4e00\u6c17\u306b\u8aad\u307f\u8fbc\u3093\u3067\u3001\u30eb\u30fc\u30d7\u3092\u3059\u308b\r\n\t\tFiles.readAllLines(Paths.get(\"\/bookList.xml\")).forEach(s -&gt; {\r\n\t\t\t\/\/ 4. Book\u8981\u7d20\u3068\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u3057\u3066\u3001\r\n\t\t\tMatcher elemMatcher = elemPattern.matcher(s);\r\n\r\n\t\t\t\/\/ 5. Book\u8981\u7d20\u306e\u884c\u3067\u3042\u308c\u3070\u3001\r\n\t\t\tif (elemMatcher.find()) {\r\n\t\t\t\t\/\/ 6. Book\u8981\u7d20\u306e\u5c5e\u6027\u90e8\u5206\u3092\u53d6\u308a\u51fa\u3057\u3066\u3001\u3055\u3089\u306b\u30de\u30c3\u30c1\u30f3\u30b0\r\n\t\t\t\tString attrs = elemMatcher.group(\"attrs\");\r\n\t\t\t\tMatcher attrMatcher = attrPattern.matcher(attrs);\r\n\r\n\t\t\t\t\/\/ 7. \u30de\u30c3\u30c1\u3057\u305f\u5c5e\u6027\u90e8\u5206\u306e\u60c5\u5831\u3092\u3059\u3079\u3066\u51fa\u529b\u3059\u308b\r\n\t\t\t\twhile (attrMatcher.find()) {\r\n\t\t\t\t\tSystem.out.println(attrMatcher.group(\"attrname\") + \" = \" + attrMatcher.group(\"attrvalue\"));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\/\/ 8. \u30c6\u30ad\u30b9\u30c8\u90e8\u5206\u306f\u6700\u521d\u306e\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u7d50\u679c\u304b\u3089\u53d6\u3063\u3066\u304f\u308b\r\n\t\t\t\tSystem.out.println(\"text = \" + elemMatcher.group(\"text\"));\r\n\t\t\t\tSystem.out.println();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}<\/pre>\n<h3><span id=\"i-7\">\uff17-\uff12\uff0e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7c21\u5358\u306a\u89e3\u8aac<\/span><\/h3>\n<p>\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001<span>XML<\/span>\u30d5\u30a1\u30a4\u30eb\u306e\u884c\u3092\u3059\u3079\u3066\u8aad\u307f\u8fbc\u3093\u3067\u3001\u884c\u5358\u4f4d\u306b\u51e6\u7406\u3092\u3057\u3066\u3044\u307e\u3059\u3002\u884c\u306e\u6587\u5b57\u5217\u3092<span>substring<\/span>\u3057\u3066\u3082\u5225\u306b\u3044\u3044\u306e\u3067\u3059\u304c\u3001\u6b63\u898f\u8868\u73fe\u3092\u4f7f\u3046\u65b9\u304c\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u304c\u697d\u3067\u3059\u3057\u3001\u77ed\u304f\u3082\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001<span>Book<\/span>\u8981\u7d20\u306e\u884c\u304b\u3069\u3046\u304b\u3092\u3001\u5c5e\u6027\u90e8\u5206\u3068\u30c6\u30ad\u30b9\u30c8\u90e8\u5206\u3092\u629c\u304d\u51fa\u3059\u6b63\u898f\u8868\u73fe\u3067\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u3002\u30de\u30c3\u30c1\u3055\u305b\u308b\u306e\u3068\u540c\u6642\u306b\u3001\u30de\u30c3\u30c1\u3057\u305f\u90e8\u5206\u3092\u5f8c\u304b\u3089\u629c\u304d\u51fa\u305b\u308b\u3088\u3046\u3001\u30de\u30c3\u30c1\u90e8\u5206\u306b\u540d\u524d\u3092\u4ed8\u3051\u3066\u3044\u307e\u3059<span>(attr<\/span>\u3068<span>text)<\/span>\u3002<\/p>\n<p>\u3055\u3089\u306b\u3001<span>Book<\/span>\u8981\u7d20\u3060\u3068\u601d\u308f\u308c\u308b\u884c\u306a\u3089\u3001\u51fa\u529b\u3057\u305f\u3044\u5c5e\u6027\u3092\u6b63\u898f\u8868\u73fe\u3067\u629c\u304d\u51fa\u3057\u307e\u3059\u3002\u3053\u3061\u3089\u3082\u5c5e\u6027\u540d\u3068\u5c5e\u6027\u5024\u306e\u30de\u30c3\u30c1\u90e8\u5206\u306b\u540d\u524d\u3092\u4ed8\u3051\u3066<span>(attrname<\/span>\u3068<span>attrvalue)<\/span>\u3001\u30de\u30c3\u30c1\u3057\u305f\u90e8\u5206\u3059\u3079\u3066\u3092\u30eb\u30fc\u30d7\u3057\u3066\u53d6\u308a\u51fa\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u6b63\u898f\u8868\u73fe\u3067\u306e\u30dd\u30a4\u30f3\u30c8\u306f\u3001\u30de\u30c3\u30c1\u90e8\u5206\u306b\u540d\u524d\u3092\u4ed8\u3051\u3066\u3044\u308b\u3053\u3068<span>(?&lt;<\/span>\u540d\u524d<span>&gt;)<\/span>\u3068\u3001\u30de\u30c3\u30c1\u65b9\u6cd5\u3092\u6700\u77ed\u4e00\u81f4<span>(.+?)<\/span>\u3068\u3057\u3066\u3044\u308b\u3053\u3068\u3067\u3059\u3002<span>Java<\/span>\u306e\u6b63\u898f\u8868\u73fe\u306f\u901a\u5e38\u306f\u6700\u9577\u4e00\u81f4\u306a\u306e\u3067\u3001\u4f59\u8a08\u306a\u3082\u306e\u307e\u3067\u3064\u3044\u3066\u304f\u308b\u304b\u3089\u3067\u3059\u306d\u3002<\/p>\n<h2><span id=\"i-8\">\uff18\uff0e\u307e\u3068\u3081<\/span><\/h2>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001<span>Java SE<\/span>\u3067\u4f7f\u3048\u308b<span>XML<\/span>\u8aad\u307f\u8fbc\u307f\u306e<span>4<\/span>\u3064\u306e\u65b9\u6cd5\u3092\u3001\u30b5\u30f3\u30d7\u30eb\u3092\u4ea4\u3048\u3066\u304a\u4f1d\u3048\u3057\u307e\u3057\u305f\u3002\u305d\u306e<span>4<\/span>\u3064\u306e\u65b9\u6cd5\u3068\u306f\u3001<span>DOM<\/span>\u3001<span>SAX<\/span>\u3001<span>StAX<\/span>\u3001<span>XPath<\/span>\u3067\u3059\u3002\u305d\u306e\u4ed6\u306b\u3082\u3001<span>JAXB<\/span>\u3068<span>XML<\/span>\u3092\u76f4\u63a5\u89e3\u91c8\u3059\u308b\u65b9\u6cd5\u3082\u3054\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u540c\u3058<span>XML<\/span>\u3092\u8aad\u3093\u3067\u540c\u3058\u51fa\u529b\u3092\u3059\u308b\u3060\u3051\u3067\u3082\u3001\u3084\u308a\u65b9\u304c\u5927\u304d\u304f\u9055\u3046\u3068\u304a\u5206\u304b\u308a\u3044\u305f\u3060\u3051\u305f\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u3067\u3059\u306e\u3067\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3084\u308a\u305f\u3044\u3053\u3068\u306b\u30d4\u30c3\u30bf\u30ea\u306e\u3084\u308a\u65b9\u3092\u9078\u3079\u308b\u3088\u3046\u3001\u305d\u308c\u305e\u308c\u4f7f\u3044\u65b9\u3092\u5b66\u3093\u3067\u304a\u304f\u3068\u3044\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<p>\u307e\u305f\u3001<span>Java<\/span>\u306e\u6a19\u6e96<span>API<\/span>\u306e\u4ed6\u306b\u3082\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5916\u90e8\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u4f7f\u3048\u307e\u3059\u3002<span>DOM<\/span>\u3001<span>SAX<\/span>\u3001<span>StAX<\/span>\u3001<span>XPath<\/span>\u306a\u3069\u306e\u3044\u3044\u3068\u3053\u53d6\u308a\u3092\u3057\u3066\u3044\u308b\u3088\u3046\u306a\u3082\u306e\u3082\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u8208\u5473\u304c\u3042\u308c\u3070\u4f7f\u3063\u3066\u307f\u3066\u3082\u3044\u3044\u3068\u601d\u3044\u307e\u3059\u3088\u3002<\/p>\n<blockquote>\n<ul>\n<li><span>JDOM(<a href=\"http:\/\/www.jdom.org\/\">http:\/\/www.jdom.org\/<\/a>)<\/span><\/li>\n<li><span>DOM4J(<a href=\"https:\/\/dom4j.github.io\/\">https:\/\/dom4j.github.io\/<\/a>)<\/span><\/li>\n<li><span>XOM(<a href=\"http:\/\/www.xom.nu\/\">http:\/\/www.xom.nu\/<\/a>)<\/span><\/li>\n<\/ul>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>XML(Extensive Markup Language)\u306f\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8a2d\u5b9a\u3092\u66f8\u3044\u305f\u308a\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u9593\u3067\u306e\u30c7\u30fc\u30bf\u9001\u4fe1\u306b\u4f7f\u3046\u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3059\u3002\u6700\u8fd1\u306fJSON\u3084YAML\u306b\u62bc\u3055\u308c\u3066\u306f\u3044\u307e\u3059\u304c\u3001\u305d\u308c\u3067\u3082\u5e45\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":804,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14],"acf":[],"_links":{"self":[{"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/posts\/1632"}],"collection":[{"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/comments?post=1632"}],"version-history":[{"count":7,"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/posts\/1632\/revisions"}],"predecessor-version":[{"id":5800,"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/posts\/1632\/revisions\/5800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/media\/804"}],"wp:attachment":[{"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/media?parent=1632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bold.ne.jp\/engineer-club\/wp-json\/wp\/v2\/categories?post=1632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}