作業部屋の使い方を試しています。
(empty log message)
| @@ -58,6 +58,9 @@ | ||
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | public void exec2(){ |
| 61 | + //HtmlTagSearch skey = new HtmlTagSearch(); | |
| 62 | + //skey.setall(HTML.Tag.DL, "dl-dataid1", "dl-dataclass1"); | |
| 63 | + | |
| 61 | 64 | Reader reader; |
| 62 | 65 | try { |
| 63 | 66 | reader = new BufferedReader(new StringReader(pageData)); |
| @@ -64,6 +67,8 @@ | ||
| 64 | 67 | // ここを検索したいタグ分繰り返せばいいのだろうか? |
| 65 | 68 | MyParserCallback cb = new MyParserCallback(); |
| 66 | 69 | ParserDelegator pd = new ParserDelegator(); |
| 70 | + | |
| 71 | + System.out.println("--- 1 ---"); | |
| 67 | 72 | pd.parse(reader, cb, true); |
| 68 | 73 | |
| 69 | 74 | reader.close(); |
| @@ -84,6 +89,7 @@ | ||
| 84 | 89 | public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attr, int pos){ |
| 85 | 90 | |
| 86 | 91 | |
| 92 | + //--- DEBUG OUT ---- start --- | |
| 87 | 93 | StringBuffer strBuf = new StringBuffer(); |
| 88 | 94 | String ret; |
| 89 | 95 |
| @@ -93,6 +99,7 @@ | ||
| 93 | 99 | strBuf.append(" [VALUE] ").append(ret); |
| 94 | 100 | } |
| 95 | 101 | System.out.println(strBuf); |
| 102 | + //--- DEBUG OUT ---- end --- | |
| 96 | 103 | |
| 97 | 104 | } |
| 98 | 105 |
| @@ -105,8 +112,8 @@ | ||
| 105 | 112 | count++; |
| 106 | 113 | } |
| 107 | 114 | tagMap.put(tag, count); |
| 108 | - | |
| 109 | - | |
| 115 | + | |
| 116 | + //--- DEBUG OUT ---- start --- | |
| 110 | 117 | StringBuffer strBuf = new StringBuffer(); |
| 111 | 118 | String ret; |
| 112 | 119 |
| @@ -124,7 +131,13 @@ | ||
| 124 | 131 | strBuf.append(" [VALUE] ").append(ret); |
| 125 | 132 | } |
| 126 | 133 | System.out.println(strBuf); |
| 134 | + //--- DEBUG OUT ---- end --- | |
| 127 | 135 | |
| 136 | + //String currentID = (String)attr.getAttribute(HTML.Attribute.ID); | |
| 137 | + //String currentClass = (String)attr.getAttribute(HTML.Attribute.CLASS); | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 128 | 141 | } |
| 129 | 142 | |
| 130 | 143 | @Override |
| @@ -138,7 +151,9 @@ | ||
| 138 | 151 | |
| 139 | 152 | |
| 140 | 153 | |
| 154 | + //--- DEBUG OUT ---- start --- | |
| 141 | 155 | System.out.println(count + " : E : " + tag.toString()); |
| 156 | + //--- DEBUG OUT ---- end --- | |
| 142 | 157 | |
| 143 | 158 | // Tag毎の階層減算 |
| 144 | 159 | tagMap.put(tag, --count); |
| @@ -147,8 +162,10 @@ | ||
| 147 | 162 | @Override |
| 148 | 163 | public void handleText(char[] data, int pos){ |
| 149 | 164 | |
| 165 | + //--- DEBUG OUT ---- start --- | |
| 150 | 166 | String dat = new String(data); |
| 151 | 167 | System.out.println(dat); |
| 168 | + //--- DEBUG OUT ---- end --- | |
| 152 | 169 | |
| 153 | 170 | } |
| 154 | 171 | } |
| @@ -108,6 +108,7 @@ | ||
| 108 | 108 | psr = new HtmlParser(jTextField1.getText()); |
| 109 | 109 | psr.exec(); |
| 110 | 110 | psr.exec2(); |
| 111 | + //psr.exec2(); | |
| 111 | 112 | jTextArea1.setText(psr.pageData); |
| 112 | 113 | // disp_jTextArea1(); |
| 113 | 114 | }//GEN-LAST:event_jButton1ActionPerformed |
| @@ -0,0 +1,250 @@ | ||
| 1 | +/* | |
| 2 | + * To change this license header, choose License Headers in Project Properties. | |
| 3 | + * To change this template file, choose Tools | Templates | |
| 4 | + * and open the template in the editor. | |
| 5 | + */ | |
| 6 | + | |
| 7 | +package htmltest1; | |
| 8 | + | |
| 9 | +//import javax.swing.JTextArea; | |
| 10 | +import java.io.*; | |
| 11 | +import javax.swing.*; | |
| 12 | +import javax.swing.table.DefaultTableModel; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * | |
| 16 | + * @author kgto | |
| 17 | + */ | |
| 18 | +public class Htmlt2Frame extends JFrame { | |
| 19 | + | |
| 20 | + HtmlParser psr; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * Creates new form Htmlt1Frame | |
| 24 | + */ | |
| 25 | + public Htmlt2Frame() { | |
| 26 | + initComponents(); | |
| 27 | + } | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * This method is called from within the constructor to initialize the form. | |
| 31 | + * WARNING: Do NOT modify this code. The content of this method is always | |
| 32 | + * regenerated by the Form Editor. | |
| 33 | + */ | |
| 34 | + @SuppressWarnings("unchecked") | |
| 35 | + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents | |
| 36 | + private void initComponents() { | |
| 37 | + | |
| 38 | + jLabel1 = new javax.swing.JLabel(); | |
| 39 | + jTextField1 = new javax.swing.JTextField(); | |
| 40 | + jButton1 = new javax.swing.JButton(); | |
| 41 | + jLabel2 = new javax.swing.JLabel(); | |
| 42 | + jButton3 = new javax.swing.JButton(); | |
| 43 | + jButton2 = new javax.swing.JButton(); | |
| 44 | + jScrollPane3 = new javax.swing.JScrollPane(); | |
| 45 | + jTable1 = new javax.swing.JTable(); | |
| 46 | + jScrollPane4 = new javax.swing.JScrollPane(); | |
| 47 | + jTextArea3 = new javax.swing.JTextArea(); | |
| 48 | + | |
| 49 | + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | |
| 50 | + | |
| 51 | + jLabel1.setText("URL"); | |
| 52 | + | |
| 53 | + jTextField1.setText("http://www.yahoo.co.jp/"); | |
| 54 | + jTextField1.addActionListener(new java.awt.event.ActionListener() { | |
| 55 | + public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| 56 | + jTextField1ActionPerformed(evt); | |
| 57 | + } | |
| 58 | + }); | |
| 59 | + | |
| 60 | + jButton1.setText("GET"); | |
| 61 | + jButton1.addActionListener(new java.awt.event.ActionListener() { | |
| 62 | + public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| 63 | + jButton1ActionPerformed(evt); | |
| 64 | + } | |
| 65 | + }); | |
| 66 | + | |
| 67 | + jLabel2.setText("検索キー"); | |
| 68 | + | |
| 69 | + jButton3.setText("Load"); | |
| 70 | + jButton3.addActionListener(new java.awt.event.ActionListener() { | |
| 71 | + public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| 72 | + jButton3ActionPerformed(evt); | |
| 73 | + } | |
| 74 | + }); | |
| 75 | + | |
| 76 | + jButton2.setText("Save"); | |
| 77 | + jButton2.addActionListener(new java.awt.event.ActionListener() { | |
| 78 | + public void actionPerformed(java.awt.event.ActionEvent evt) { | |
| 79 | + jButton2ActionPerformed(evt); | |
| 80 | + } | |
| 81 | + }); | |
| 82 | + | |
| 83 | + jTable1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); | |
| 84 | + jTable1.setName(""); // NOI18N | |
| 85 | + jTable1.setRowSelectionAllowed(false); | |
| 86 | + jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); | |
| 87 | + jScrollPane3.setViewportView(jTable1); | |
| 88 | + | |
| 89 | + jTextArea3.setColumns(20); | |
| 90 | + jTextArea3.setRows(5); | |
| 91 | + jScrollPane4.setViewportView(jTextArea3); | |
| 92 | + | |
| 93 | + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); | |
| 94 | + getContentPane().setLayout(layout); | |
| 95 | + layout.setHorizontalGroup( | |
| 96 | + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| 97 | + .addGroup(layout.createSequentialGroup() | |
| 98 | + .addComponent(jLabel1) | |
| 99 | + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| 100 | + .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE) | |
| 101 | + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| 102 | + .addComponent(jButton1)) | |
| 103 | + .addGroup(layout.createSequentialGroup() | |
| 104 | + .addContainerGap() | |
| 105 | + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| 106 | + .addGroup(layout.createSequentialGroup() | |
| 107 | + .addComponent(jLabel2) | |
| 108 | + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |
| 109 | + .addComponent(jButton3) | |
| 110 | + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| 111 | + .addComponent(jButton2)) | |
| 112 | + .addGroup(layout.createSequentialGroup() | |
| 113 | + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| 114 | + .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| 115 | + .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
| 116 | + .addGap(0, 0, Short.MAX_VALUE))) | |
| 117 | + .addContainerGap()) | |
| 118 | + ); | |
| 119 | + layout.setVerticalGroup( | |
| 120 | + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
| 121 | + .addGroup(layout.createSequentialGroup() | |
| 122 | + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| 123 | + .addComponent(jLabel1) | |
| 124 | + .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| 125 | + .addComponent(jButton1)) | |
| 126 | + .addGap(2, 2, 2) | |
| 127 | + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
| 128 | + .addComponent(jLabel2) | |
| 129 | + .addComponent(jButton2) | |
| 130 | + .addComponent(jButton3)) | |
| 131 | + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| 132 | + .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE) | |
| 133 | + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
| 134 | + .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 129, Short.MAX_VALUE) | |
| 135 | + .addContainerGap()) | |
| 136 | + ); | |
| 137 | + | |
| 138 | + pack(); | |
| 139 | + }// </editor-fold>//GEN-END:initComponents | |
| 140 | + | |
| 141 | + private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed | |
| 142 | + // TODO add your handling code here: | |
| 143 | + }//GEN-LAST:event_jTextField1ActionPerformed | |
| 144 | + | |
| 145 | + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed | |
| 146 | + //jTextArea1.append(jTextField1.getText()); | |
| 147 | + psr = new HtmlParser(jTextField1.getText()); | |
| 148 | + psr.exec(); | |
| 149 | + psr.exec2(); | |
| 150 | + //psr.exec2(); | |
| 151 | + //jTextArea1.setText(psr.pageData); | |
| 152 | + // disp_jTextArea1(); | |
| 153 | + }//GEN-LAST:event_jButton1ActionPerformed | |
| 154 | + | |
| 155 | + private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed | |
| 156 | + //jTable1. | |
| 157 | + //DefaultTableModel tableModel = new DefaultTableModel(0, 0); | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + }//GEN-LAST:event_jButton3ActionPerformed | |
| 162 | + | |
| 163 | + private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed | |
| 164 | + // TODO add your handling code here: | |
| 165 | + }//GEN-LAST:event_jButton2ActionPerformed | |
| 166 | + | |
| 167 | + private void disp_jTextArea1() { | |
| 168 | + try { | |
| 169 | + System.out.println("- disp_jTextArea1 -"); | |
| 170 | + BufferedReader Sreader = new BufferedReader(new StringReader(psr.pageData)); | |
| 171 | + String ret = null; | |
| 172 | + while ((ret = Sreader.readLine()) != null) { | |
| 173 | + System.out.println(ret); | |
| 174 | + } | |
| 175 | + } | |
| 176 | + catch(Exception e) { | |
| 177 | + System.err.println(e); | |
| 178 | + } | |
| 179 | + } | |
| 180 | + | |
| 181 | + /** | |
| 182 | + * @param args the command line arguments | |
| 183 | + */ | |
| 184 | + public static void main(String args[]) { | |
| 185 | + /* Set the Nimbus look and feel */ | |
| 186 | + //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> | |
| 187 | + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. | |
| 188 | + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html | |
| 189 | + */ | |
| 190 | + try { | |
| 191 | + for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { | |
| 192 | + if ("Nimbus".equals(info.getName())) { | |
| 193 | + UIManager.setLookAndFeel(info.getClassName()); | |
| 194 | + break; | |
| 195 | + } | |
| 196 | + } | |
| 197 | + // add start | |
| 198 | + String look = UIManager.getSystemLookAndFeelClassName(); | |
| 199 | + UIManager.setLookAndFeel(look); | |
| 200 | + // add end | |
| 201 | + | |
| 202 | + } catch (ClassNotFoundException ex) { | |
| 203 | + java.util.logging.Logger.getLogger(Htmlt2Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| 204 | + } catch (InstantiationException ex) { | |
| 205 | + java.util.logging.Logger.getLogger(Htmlt2Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| 206 | + } catch (IllegalAccessException ex) { | |
| 207 | + java.util.logging.Logger.getLogger(Htmlt2Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| 208 | + } catch (javax.swing.UnsupportedLookAndFeelException ex) { | |
| 209 | + java.util.logging.Logger.getLogger(Htmlt2Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
| 210 | + } | |
| 211 | + //</editor-fold> | |
| 212 | + | |
| 213 | + /* Create and display the form */ | |
| 214 | + java.awt.EventQueue.invokeLater(new Runnable() { | |
| 215 | + public void run() { | |
| 216 | + new Htmlt2Frame().setVisible(true); | |
| 217 | + } | |
| 218 | + }); | |
| 219 | + } | |
| 220 | + /** | |
| 221 | + * 外観をOSのものに似せる | |
| 222 | + * <p> | |
| 223 | + * (WindowsならWindowsの外観に似る) | |
| 224 | + * </p> | |
| 225 | + */ | |
| 226 | + private void initLookFeel() { | |
| 227 | + try { | |
| 228 | + String look = | |
| 229 | + // "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; | |
| 230 | + UIManager.getSystemLookAndFeelClassName(); | |
| 231 | + UIManager.setLookAndFeel(look); | |
| 232 | + } catch (Exception e) { | |
| 233 | + // 駄目なときは諦める | |
| 234 | + e.printStackTrace(); | |
| 235 | + } | |
| 236 | + } | |
| 237 | + | |
| 238 | + // Variables declaration - do not modify//GEN-BEGIN:variables | |
| 239 | + private javax.swing.JButton jButton1; | |
| 240 | + private javax.swing.JButton jButton2; | |
| 241 | + private javax.swing.JButton jButton3; | |
| 242 | + private javax.swing.JLabel jLabel1; | |
| 243 | + private javax.swing.JLabel jLabel2; | |
| 244 | + private javax.swing.JScrollPane jScrollPane3; | |
| 245 | + private javax.swing.JScrollPane jScrollPane4; | |
| 246 | + private javax.swing.JTable jTable1; | |
| 247 | + private javax.swing.JTextArea jTextArea3; | |
| 248 | + private javax.swing.JTextField jTextField1; | |
| 249 | + // End of variables declaration//GEN-END:variables | |
| 250 | +} |
| @@ -0,0 +1,198 @@ | ||
| 1 | +/* | |
| 2 | + * HTMLの検索タグ情報格納 | |
| 3 | + */ | |
| 4 | + | |
| 5 | +package htmltest1; | |
| 6 | + | |
| 7 | +import java.util.ArrayList; | |
| 8 | +import javax.swing.text.html.*; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * HTMLのTAG,ID,CLASSで1キーとし、ユニークなキーをリストに登録、検索する。 | |
| 12 | + * @author kgto | |
| 13 | + */ | |
| 14 | +public class HtmlTagSearch { | |
| 15 | + | |
| 16 | + class structdata { | |
| 17 | + HTML.Tag Tag; | |
| 18 | + String Id; | |
| 19 | + String Class; | |
| 20 | + } | |
| 21 | + /** | |
| 22 | + * キー情報が格納されたリスト | |
| 23 | + */ | |
| 24 | + ArrayList<structdata> slist; | |
| 25 | + /** | |
| 26 | + * キー情報(HTMLのタグ名,タグのID,タグのClass)を格納 | |
| 27 | + */ | |
| 28 | + structdata dat; | |
| 29 | + | |
| 30 | + /** | |
| 31 | + * 格納するキーリストを作成する。 | |
| 32 | + */ | |
| 33 | + public HtmlTagSearch() { | |
| 34 | + slist = new ArrayList<>(); | |
| 35 | + } | |
| 36 | + | |
| 37 | + /** | |
| 38 | + * キー情報を登録する。 | |
| 39 | + * TAG+ID+CLASSで1キーとし、重複登録は行わない。 | |
| 40 | + * @param Tag HTMLのタグ名 | |
| 41 | + * @param Id タグのID | |
| 42 | + * @param Class タグのClass | |
| 43 | + */ | |
| 44 | + public void setall(HTML.Tag Tag, String Id, String Class) { | |
| 45 | + if(searchall(Tag, Id, Class) == false) { // 重複チェック | |
| 46 | + dat = new structdata(); | |
| 47 | + dat.Tag = Tag; | |
| 48 | + dat.Id = Id; | |
| 49 | + dat.Class = Class; | |
| 50 | + slist.add(dat); | |
| 51 | + } | |
| 52 | + } | |
| 53 | + | |
| 54 | + /** | |
| 55 | + * キー情報を登録する。 | |
| 56 | + * TAG+IDで1キーとし、重複登録は行わない。 | |
| 57 | + * @param Tag HTMLのタグ名 | |
| 58 | + * @param Id タグのID | |
| 59 | + */ | |
| 60 | + public void setid(HTML.Tag Tag, String Id) { | |
| 61 | + if(!(Id == null)) { | |
| 62 | + setall(Tag, Id, null); | |
| 63 | + } | |
| 64 | + } | |
| 65 | + | |
| 66 | + /** | |
| 67 | + * キー情報を登録する。 | |
| 68 | + * TAG+CLASSで1キーとし、重複登録は行わない。 | |
| 69 | + * @param Tag HTMLのタグ名 | |
| 70 | + * @param Class タグのClass | |
| 71 | + */ | |
| 72 | + public void setclass(HTML.Tag Tag, String Class) { | |
| 73 | + if(!(Class == null)) { | |
| 74 | + setall(Tag, null, Class); | |
| 75 | + } | |
| 76 | + } | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 登録されているキーリストより、指定された位置のキー情報を取得する。 | |
| 80 | + * @param i 取得したいキー情報のリスト位置 | |
| 81 | + */ | |
| 82 | + public void get(int i) { | |
| 83 | + if(i < slist.size()) { | |
| 84 | + dat = slist.get(i); | |
| 85 | + } | |
| 86 | + } | |
| 87 | + | |
| 88 | + /** | |
| 89 | + * 取得したいキー情報の項目値を取り出す。</> | |
| 90 | + * ※先にgetメソッドにより、取得したいキー情報を取得しておくこと。 | |
| 91 | + * @return キー情報内の、HTMLのタグ名を返す。 | |
| 92 | + */ | |
| 93 | + public HTML.Tag gettag() { | |
| 94 | + return dat.Tag; | |
| 95 | + } | |
| 96 | + | |
| 97 | + /** | |
| 98 | + * 取得したいキー情報の項目値を取り出す。</> | |
| 99 | + * ※先にgetメソッドにより、取得したいキー情報を取得しておくこと。 | |
| 100 | + * @return キー情報内の、タグのIDを返す。 | |
| 101 | + */ | |
| 102 | + public String getid() { | |
| 103 | + return dat.Id; | |
| 104 | + } | |
| 105 | + | |
| 106 | + /** | |
| 107 | + * 取得したいキー情報の項目値を取り出す。</> | |
| 108 | + * ※先にgetメソッドにより、取得したいキー情報を取得しておくこと。 | |
| 109 | + * @return キー情報内の、タグのClassを返す。 | |
| 110 | + */ | |
| 111 | + public String getclass() { | |
| 112 | + return dat.Class; | |
| 113 | + } | |
| 114 | + | |
| 115 | + /** | |
| 116 | + * 既に登録されているキーのデータ数を返す。 | |
| 117 | + * @return 登録されているキーのデータ数 | |
| 118 | + */ | |
| 119 | + public int size() { | |
| 120 | + return slist.size(); | |
| 121 | + } | |
| 122 | + | |
| 123 | + /** | |
| 124 | + * 入力されたキーより、登録されたキーリストの存在をチェックする。 | |
| 125 | + * @param Tag 検索するHTMLのタグ名 | |
| 126 | + * @param Id 検索するタグのID | |
| 127 | + * @param Class 検索するタグのClass | |
| 128 | + * @return 引数のTag,Id,Classに一致するキーが存在した場合、True | |
| 129 | + */ | |
| 130 | + public boolean searchall(HTML.Tag Tag, String Id, String Class) { | |
| 131 | + | |
| 132 | + for (structdata slist1 : slist) { | |
| 133 | + boolean chkflg[] = {false, false, false}; | |
| 134 | + // Tag | |
| 135 | + if(slist1.Tag == null) { | |
| 136 | + if(Tag == null) { | |
| 137 | + chkflg[0] = true; | |
| 138 | + } | |
| 139 | + } else { | |
| 140 | + if(slist1.Tag.equals(Tag)) { | |
| 141 | + chkflg[0] = true; | |
| 142 | + } | |
| 143 | + } | |
| 144 | + // Id | |
| 145 | + if(slist1.Id == null) { | |
| 146 | + if(Id == null) { | |
| 147 | + chkflg[1] = true; | |
| 148 | + } | |
| 149 | + } else { | |
| 150 | + if(slist1.Id.equals(Id)) { | |
| 151 | + chkflg[1] = true; | |
| 152 | + } | |
| 153 | + } | |
| 154 | + // Class | |
| 155 | + if(slist1.Class == null) { | |
| 156 | + if(Class == null) { | |
| 157 | + chkflg[2] = true; | |
| 158 | + } | |
| 159 | + } else { | |
| 160 | + if(slist1.Class.equals(Class)) { | |
| 161 | + chkflg[2] = true; | |
| 162 | + } | |
| 163 | + } | |
| 164 | + // | |
| 165 | + if(chkflg[0] & chkflg[1] & chkflg[2] ) { | |
| 166 | + return true; | |
| 167 | + } | |
| 168 | + } | |
| 169 | + return false; | |
| 170 | + } | |
| 171 | + | |
| 172 | + /** | |
| 173 | + * 入力されたキーより、登録されたキーリストの存在をチェックする。 | |
| 174 | + * @param Tag 検索するHTMLのタグ名 | |
| 175 | + * @param Id 検索するタグのID | |
| 176 | + * @return 引数のTag,Idに一致するキーが存在した場合、True | |
| 177 | + */ | |
| 178 | + public boolean searchid(HTML.Tag Tag, String Id) { | |
| 179 | + if(Id == null) { | |
| 180 | + return false; | |
| 181 | + } | |
| 182 | + return searchall(Tag, Id, null); | |
| 183 | + } | |
| 184 | + | |
| 185 | + /** | |
| 186 | + * 入力されたキーより、登録されたキーリストの存在をチェックする。 | |
| 187 | + * @param Tag 検索するHTMLのタグ名 | |
| 188 | + * @param Class 検索するタグのClass | |
| 189 | + * @return 引数のTag,Classに一致するキーが存在した場合、True | |
| 190 | + */ | |
| 191 | + public boolean searchclass(HTML.Tag Tag, String Class) { | |
| 192 | + if(Class == null) { | |
| 193 | + return false; | |
| 194 | + } | |
| 195 | + return searchall(Tag, null, Class); | |
| 196 | + } | |
| 197 | + | |
| 198 | +} |
| @@ -0,0 +1,23 @@ | ||
| 1 | + | |
| 2 | +package htmltest1; | |
| 3 | + | |
| 4 | +import java.util.Date; | |
| 5 | + | |
| 6 | +public class Person { | |
| 7 | + private int id; | |
| 8 | + private String name; | |
| 9 | + private Date birthday; | |
| 10 | + private int salary; | |
| 11 | + | |
| 12 | + public Person() { | |
| 13 | + } | |
| 14 | + | |
| 15 | + public Person(int id, String name, Date birthday, int salary) { | |
| 16 | + this.id = id; | |
| 17 | + this.name = name; | |
| 18 | + this.birthday = birthday; | |
| 19 | + this.salary = salary; | |
| 20 | + } | |
| 21 | + | |
| 22 | + // Getter/Setterは省略 | |
| 23 | +} | |
| \ No newline at end of file |