• 締切済み

XML文章検索方法でDOM&SAX以外に何かありますか?

mnabeの回答

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

 私は以下でXMLを扱っています。

参考URL:
http://www.baykit.org
jixyoji
質問者

補足

早速の回答ありがとうございます。 非常に役立つHPなのですが、ツールでは駄目なんですよ(涙)。何故かと申しますと今サーバーの機能拡張を題材にした開発を行っているのでツールを除いた方法で何かないか模索しています。 もし何かよい案があればお願いします。

関連するQ&A

  • DOMでパースしているXML全体の出力方法

    お世話になります。 JavaでDOMを使ってXML操作をしたいと考えております。 おおよそ、以下のソースでparseできるところまで確認できました。 DOMParser parser = new DOMParser(); parser.parse("XMLファイルパス"); Document doc = parser.getDocument(); 開発中なので、DOM操作した結果のXMLを随時コンソールやログに 出力させたいのですが、たとえばdoc.toString()してもnullとなり、 正常に出力されません。 以下のようにElementを取得すると正常にアクセスできていることは 確認しています。 Element rootEl = doc.getDocumentElement(); System.out.println(rootEl.getNodeName()); なお、DOMライブラリにはxercesを用いております。 Dom4jのAPIも見てみましたが、それらしいメソッドを見つけることが できていません。 簡単にXMLを出力できることが理想です。 一般的な方法、よくやる手法など、みなさんよりご教示頂きたいです。

    • ベストアンサー
    • Java
  • org.xml.sax.SAXParseException エラーについて

    どうぞ、知恵をお貸しください。 ・jdk-1.5.0.16 ・mysql-4.0.26-win32 ・mysql-connector-java-3.1.14 ・eclipse 3.2.0 ・tomcat-5.5.26 ・tomcatPluginV321 サーバサイドのJavaの勉強と言うことで、上記のダウンロードとインストールを行いました。 eclipseのバーにもtomcatの文字が表示され、単純にtomatのドウサカクニンを行ったところ、 正常に動いていることの確認が取れました。 ところが、いざ勉強をと思いxmlサンプル用のプログラムを作成、実行を行ったところ、下記エラーが表示されました。 致命的: Parse Fatal Error at line -1 column -1: Premature end of file. org.xml.sax.SAXParseException: Premature end of file.      :      :      : 2008/09/01 11:17:22 org.apache.catalina.startup.ContextConfig applicationWebConfig 致命的: アプリケーションのweb.xmlファイル jndi:/localhost/study_web/WEB-INF/web.xml の解析エラーです 何が原因なのでしょうか? どうぞ、ご教授ください。

  • SAXによる文字データの読み込み方法

    現在、自作アプリのデータをXMLでファイルに保存し、SAXで読み込み処理をしようと考えております。 データは、次のようなものと仮定します。 <歌> <曲名>○○の歌</曲名> <作曲者>某 太郎</作曲者> </歌> 上記のようなXMLの場合、曲名、作曲者をcharacters()で得ることとなると思うのですが、どちらのデータなのかを判断する方法が分かりません。 startElement()で場合分けして、フラグをたてておいて、characters()内で、そのフラグを見て判断するしかないのでしょうか? なんか、スマートでない気がして、なにかいい方法がないかと悩んでいます。 ファイルから読み込んで、すぐに自前のクラスに代入するのですが、DOMでツリーを作った方がいいのでしょうか? なにか、よい方法をご存じでしたらご教授下さい。 よろしくお願いいたします。

    • 締切済み
    • XML
  • Jakarta NTサービスとともに動かすには。。。

    TOMCATをNTのサービスとしてバックグランドで実行させようとして その方法が書かれていた(http://www.ingrid.org/jajakarta/tomcat/tomcat-3.2.3/doc-ja/NT-Service-howto.html)を参考にしながらやっているのですが、うまくいきません。 環境は、Win2000、JDK1.3.1_02、TOMCAT3.2.4です。 サービスは登録されるのですが、サービスを開始すると途中でエラー以下のエラーがでて、実際には開始されません。 「システムエラーが発生しました。 システムエラーが1067発生しました。 プロセスを強制終了しました。」 logフォルダに出てくる「jvm.stderr」の内容は javax.xml.parsers.FactoryConfigurationError: java.lang.ClassNotFoundException: org.apache.crimson.jaxp.SAXParserFactoryImpl at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:120) at org.apache.tomcat.util.xml.XmlMapper.readXml(XmlMapper.java:210) at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:187) at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:240) Exception in thread "main" となります、なにがいけないのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Eclispe上でXML書込み可能が、E以外出来ず

    Eclispe上では、任意の値を、例えば(ex.xml等)に書込み可能なのですが、 ランナブルjarにして、デスクトップ上に他ファイルも含めて置き、jarを起動して、 XMLに書込みしようとしても書込みできません。 XMLは標準で作成してます(windows7 Home edition 管理者権限で動作 JDK1.7.0_05)。 色々調査しましたが原因不明です。 読み込みは問題ありません。XSLTにも関連していないようです。 何が違うのでしょうか? みなさま、よろしくお願いいたします。 ソースは以下の通り、 import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; public class XMLBasic { /*-------------------------* * Variables. * *-------------------------*/ /*----- For XML -----*/ /* XSL */ final static String XSL_FILE="resource\\style.xsl"; /**/ static Element element; /*-------------------------* * Methods. * *-------------------------*/ /*----- Rewrite -----*/ public static void rw(String value, String tagName, int itemNum, String xmlFileName, String xslFileName) { Document document=null; try { document=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(xmlFileName)); } catch (SAXException e) { } catch (IOException e) { } catch (ParserConfigurationException e) {} document.getElementsByTagName(tagName).item(itemNum).getFirstChild().setNodeValue(value); TransformerFactory tfactory=TransformerFactory.newInstance(); Transformer transformer=null; try { transformer=tfactory.newTransformer(new StreamSource(new File(xslFileName))); } catch (TransformerConfigurationException e) {} try { transformer.transform(new DOMSource(document), new StreamResult(new File(xmlFileName))); } catch (TransformerException e) {} } }

    • ベストアンサー
    • Java
  • 現在、JAVAのXML/DOMを利用して

    現在、JAVAのXML/DOMを利用して XMLを生成してタグ、インデントを含めそのまま WEBブラウザに出力するようにしたいと思っていますが、 この場合、XMLのタグがWEBブラウザでタグと認識され、除去されてしまいます。 XMLのタグを除去せず、そのまま画面に表示することは可能でしょうか? 可能であれば、その方法を教えていただけませんか? 宜しくお願いします。 今書いているコード DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; builder = factory.newDocumentBuilder(); DOMImplementation domImpl = builder.getDOMImplementation(); Document document = domImpl.createDocument("","test",null); Element test = document.getDocumentElement(); Element aiueoNode = document.createElement("AAA"); Element abcdeNode = document.createElement("BBB"); aiueoNode.appendChild(document.createTextNode("あいうえお"); abcdeNode.appendChild(document.createTextNode("ABCDE"); test.appendChild(aiueoNode); test.appendChild(abcdeNode); TransformerFactory tf = TransformerFactoryImpl.newInstance(); tf.setAttribute(TransformerFactoryImpl.INDENT_NUMBER, "2"); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); PrintWriter out = new PrintWriter(response.getOutputStream(), true); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); DOMSource source = new DOMSource(document); transformer.transform(source, result); /**XMLを文字列にして出力**/ out.println(writer.toString()); 現在IE出力例は「あいうえおABCDE」ですが、下記のように出力したいです。 「<test>     <AAA>あいうえお</AAA>     <BBB>ABCDE</BBB> </test>」 宜しくお願いします。 java:1.6/tomcat:6.0/IE:8

    • ベストアンサー
    • Java
  • JavaからXMLプロセッサを使うとは?

    JavaでXMLを処理する必要に駆られまして、一念発起して勉強しています。 XMLを処理するためには、JavaのAPIがあってそれを利用するというのはokで、処理方法にはDOM・SAX・XSLTといったものがあるというのもわかりました。 ただ、DOMやSAXが、Javaプログラムからデータを読む手助けをするためのモノというのはわかるのですが、XSLTはただの変換とどう違うのでしょうか? 本を読む限り、XSLの規則にしたがって変換するもの。となっていて、読み込ませる→変換結果が出てくる、で、なんだかHTMLの生成くらいにしか使えないような印象なのですが、Javaとタッグを組んでデータを処理させたい場合、どんな使われ方をするのでしょうか。 DOMやSAXでも良いじゃんと言われそうなのですが、HTMLも同時に扱う必要があるため、ぜひ習得したいのです。 ですが、市販のJava本はほとんどXMLパーサ関係ばかりで・・・。また、何かいい参考書もあったら教えていただきたいと思います。

    • ベストアンサー
    • Java
  • Tomcatのインストール

    Tomcatを以下からダウンロードしました。 ****://www.eng.lsu.edu/mirrors/apache/tomcat/tomcat-5/v5.5.17/src/apache-tomcat-5.5.17-src.tar.gz ファイル名にsrcがあるので、コンパイルが必要なソース群だと思います。 展開します。 tar xvzf apache-tomcat-5.5.17-src.tar.gz 確認します。 cd apache-tomcat-5.5.17-src ls build/ build.xml connectors/ container/ jasper/ servletapi/ ここでbuild.xmlを実行するとエラーになりました。 僕がダウンロードしたものはコンパイルする必要がなかったのですか? apache-tomcat-5.5.17-src.tar.gzのインストール方法を教えてください。

  • eclipseからのtomcat起動ができません

    こんばんは。 eclipse3.2からtomcatを起動したいのですが、 猫ボタンを押しても、うんともすんとも言いません。 コンソールにも何も表示されません。 tomcat単体でしたら起動しlocalhost:8080を見れます。 何がいけないのでしょうか? 環境は以下のとおりです。 ・eclipse3.2(日本語) ・tomcat6.0 ・tomcatバージョン バージョン6x ・tomcatホーム C:\Program Files\Apache Software Foundation\Tomcat 6.0 ・サーバーXML設定ファイル C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml ・プラグイン tomcatPluginV321.zip お手数ですが、どうかアドバイスをよろしくお願いいたします。

    • ベストアンサー
    • Java
  • DOMでXMLからデータを抽出するとNULLになる(JSP)

    JSPを勉強中なのですが、以下を実行するとエラーになってしまいます。 テキストに付録していた解答のコードを使っています。 JSPファイル: <%@ page contentType="text/html;charset=Windows-31J" import="javax.xml.parsers.*,org.w3c.dom.*,java.io.*" %> <html><head><title>住所録一覧</title></head><body> <h1 style="font-size:14pt;background:#cccccc">住所録一覧</h1> <table border="0"> <tr style="background:#00ccff"> <th>No.</th><th>名前</th><th>性別</th><th>電話番号</th><th>住所</th> </tr> <% DocumentBuilderFactory objDbf=DocumentBuilderFactory.newInstance(); DocumentBuilder objDb=objDbf.newDocumentBuilder(); Document objDoc=objDb.parse(new File(application.getRealPath("day04-3/addbook.xml"))); Element objRoot=objDoc.getDocumentElement(); NodeList clnNod=objRoot.getChildNodes(); for(int i=0;i<clnNod.getLength();i++) { out.println("<tr style='background:#ffffcc'>"); Node objNod=clnNod.item(i); NamedNodeMap clnNnm=objNod.getAttributes(); Attr atrNam=(Attr)clnNnm.item(0); out.println("<td>" + atrNam.getValue() + "</td>"); NodeList clnNod2=objNod.getChildNodes(); for(int j=0;j<clnNod2.getLength();j++) { Node objNod2=clnNod2.item(j); out.println("<td>" + objNod2.getFirstChild().getNodeValue() + "</td>"); } out.println("</tr>"); } %> </table></body></html> XMLファイル: ファイル名:addbook.xml <?xml version="1.1" encoding="utf-8"?> <addbook> <member id="1"> <name>高橋秀和</name> <gender>男</gender> <tel>04x-231x-123x</tel> <address>小金井市△△町123-3249</address> </member> <member id="2"> <name>輪笠貴子</name> <gender>女</gender> <tel>00x-1231-xxxx</tel> <address>横浜市○○区△△町34165-1</address> </member> <member id="3"> <name>佐々木健司</name> <gender>男</gender> <tel>04x-231x-xxxx</tel> <address>川崎市○○町1-3213</address> </member> <member id="4"> <name>鳥内都</name> <gender>女</gender> <tel>09x-21xx-xx97</tel> <address>横浜市◇◇区5-16</address> </member> <member id="5"> <name>金崎瑞穂</name> <gender>女</gender> <tel>02x-654x-324x</tel> <address>相模原市△△区1-9-21</address> </member><member id="10"> <name>川端真一</name> <gender>男</gender> <tel>0xx-999-8888</tel> <address>相模原市★★町12313-1</address> </member> </addbook> エラー内容: type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from lfilling this request. 例外 org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) day10.LogFilter.doFilter(LogFilter.java:38) 原因 java.lang.NullPointerException org.apache.jsp.day04_002d4.addList_jsp._jspService(addList_jsp.java:79) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) day10.LogFilter.doFilter(LogFilter.java:38) 以上です。 JSPのコードは Document objDoc=objDb.parse(new File(application.getRealPath("day04-3/addbook.xml"))); の行の new File の部分だけ修正しました。 ここでつまづてしまい、先に進む事ができません。 環境は、 JDK1.6 Tomcat6 OS:WindowsXP を使用しています。 どなたか原因が分かる方、お助けください。

    • ベストアンサー
    • Java