• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作業部屋の使い方を試しています。


Commit MetaInfo

Revision86 (tree)
Time2014-10-01 00:26:34
Authortuna_p

Log Message

新メソッド案

Change Summary

Incremental Difference

--- trunk/HtmlTest2/src/Form/SearchDataRW.java (revision 85)
+++ trunk/HtmlTest2/src/Form/SearchDataRW.java (revision 86)
@@ -57,11 +57,25 @@
5757 */
5858 public class SearchDataRW {
5959
60+ DocumentBuilder builder;
61+ Document document;
62+ Element root;
63+
6064 private final String splitchar = "\t";
6165
6266 private String UrlAdress;
6367 private ArrayList slist;
6468
69+ public SearchDataRW() {
70+ try {
71+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
72+ builder = factory.newDocumentBuilder();
73+
74+ } catch (ParserConfigurationException ex) {
75+ Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
76+ }
77+ }
78+
6579 public void seturl(String UrlAdress) {
6680 this.UrlAdress = UrlAdress;
6781 }
@@ -300,4 +314,161 @@
300314 }
301315 }
302316
317+
318+ public String loadUrl() {
319+ String urladdress;
320+
321+ NodeList nodelist = root.getElementsByTagName("url");
322+ Node node = nodelist.item(0);
323+ urladdress = node.getFirstChild().getNodeValue();
324+
325+ return urladdress;
326+ }
327+
328+ public ArrayList<SearchData> loadSearchList() {
329+ ArrayList<SearchData> slist = new ArrayList<>();
330+
331+ NodeList nodelist = root.getElementsByTagName("searchlist");
332+ for(int i = 0; i < nodelist.getLength(); i++) {
333+ Node childnode = nodelist.item(i);
334+
335+ boolean sdatflg = false;
336+ SearchData sdat = new SearchData();
337+
338+ //NodeList childnodelist = childnode.getChildNodes();
339+ //for(int j = 0; j < childnodelist.getLength(); j++) {
340+ // Node child = childnodelist.item(j);
341+
342+ for (Node child = childnode.getFirstChild();
343+ child != null; child = child.getNextSibling()) {
344+
345+ if(child.getNodeType() == Node.ELEMENT_NODE) {
346+
347+ String tag = child.getNodeName();
348+ String rtn = "";
349+ if(child.getFirstChild() != null) {
350+ rtn = child.getFirstChild().getNodeValue();
351+ }
352+
353+ switch (tag) {
354+ case "item" :
355+ sdat.setitem(rtn);
356+ sdatflg = true;
357+ break;
358+ case "htmltag" :
359+ sdat.setHtmltag(rtn);
360+ sdatflg = true;
361+ break;
362+ case "htmlid" :
363+ sdat.setHtmlid(rtn);
364+ sdatflg = true;
365+ break;
366+ case "htmlclass" :
367+ sdat.setHtmlclass(rtn);
368+ sdatflg = true;
369+ break;
370+ case "around" :
371+ sdat.setaround(rtn);
372+ sdatflg = true;
373+ break;
374+ case "regexp" :
375+ sdat.setregexp(rtn);
376+ sdatflg = true;
377+ break;
378+ }
379+ }
380+ }
381+ if(sdatflg) slist.add(sdat);
382+ }
383+ return slist;
384+ }
385+
386+ public void saveUrl(String urladdress) {
387+ checkdoc();
388+ removeElement("url"); // 既にElementが存在してた場合、一度削除
389+
390+ Element url = document.createElement("url");
391+ url.appendChild(document.createTextNode(urladdress));
392+ root.appendChild(url);
393+ }
394+
395+ public void saveSearchList(ArrayList slist) {
396+ checkdoc();
397+ removeElement("searchlist"); // 既にElementが存在してた場合、一度削除
398+
399+ for (Object slist1 : slist) {
400+ SearchData sdat = (SearchData) slist1;
401+
402+ Element cslist = document.createElement("searchlist");
403+
404+ addChild(cslist, "item", sdat.getitem());
405+ addChild(cslist, "htmltag", sdat.getHtmltag());
406+ addChild(cslist, "htmlid", sdat.getHtmlid());
407+ addChild(cslist, "htmlclass", sdat.getHtmlclass());
408+ addChild(cslist, "around", sdat.getaround());
409+ addChild(cslist, "regexp", sdat.getregexp());
410+
411+ root.appendChild(cslist);
412+ }
413+ }
414+
415+ private void addChild(Element cslist, String keyword, String data) {
416+ if(!data.isEmpty()) {
417+ Element element = document.createElement(keyword);
418+ element.appendChild(document.createTextNode(data));
419+ cslist.appendChild(element);
420+ }
421+ }
422+
423+ private void removeElement(String elementTagName) {
424+ NodeList nodelist = document.getElementsByTagName(elementTagName);
425+ for(int i = 0; i < nodelist.getLength(); i++) {
426+ Node node = nodelist.item(i);
427+ root.removeChild(node);
428+ }
429+ }
430+
431+ private void checkdoc() {
432+ if(document == null) {
433+ DOMImplementation domImpl = builder.getDOMImplementation();
434+ document = domImpl.createDocument("","searchdata",null);
435+ }
436+ root = document.getDocumentElement();
437+ }
438+
439+ /**
440+ * XML読込み.
441+ * @param file
442+ */
443+ public void read(File file) {
444+ try {
445+ document = builder.parse(file);
446+ root = document.getDocumentElement();
447+
448+ } catch (SAXException | IOException ex) {
449+ Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
450+ }
451+ }
452+
453+ /**
454+ * XML書込み.
455+ * @param file
456+ */
457+ public void write(File file) {
458+ try {
459+ TransformerFactory transFactory = TransformerFactory.newInstance();
460+ Transformer transformer = transFactory.newTransformer();
461+
462+ DOMSource source = new DOMSource(document);
463+ FileOutputStream os = new FileOutputStream(file);
464+ StreamResult result = new StreamResult(os);
465+ transformer.transform(source, result);
466+
467+ } catch (TransformerConfigurationException ex) {
468+ Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
469+ } catch (FileNotFoundException | TransformerException ex) {
470+ Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
471+ }
472+ }
473+
303474 }