【Android2.1】XMLファイルの修正方法とは?

このQ&Aのポイント
  • Android2.1環境において、XMLファイルの属性の修正や削除方法についてわかりません。
  • 「javax.xml.transform」クラスのメソッドを使用してXMLの更新を行おうとしましたが、Android2.1では利用できません。
  • XMLファイルの扱い経験がなく、困っています。良い情報やサイトがあれば教えてください。
回答を見る
  • ベストアンサー

【Android2.1】XMLファイルの修正

こんにちは、Androidアプリ開発において、XMLファイルの属性の修正、削除方法について、ご質問させて下さい。 Android2.1環境の元、XMLファイルで保存された情報を画面の指示に従って、修正、削除する処理を行いたいのですが、どのように実装すれば良いかわかりません。 ※XMLファイル自体の扱い経験がなく、困っております。 いろいろ調べているうちに「javax.xml.transform」クラスのメソッドを使用してXMLの更新を行っていたりしていたのですが、Android2.1では使用できない模様です。 分かりずらい文章になり、誠に申し訳ありませんが、 なにか良い情報、サイトをご存じの方がおられましたら、お教え下さい。 よろしくお願いします。 ------------------------------------- <user> <name>あああ</name> ←「かかか」に変更したい! <age>20</age> </user> <user> ←このuserノード自体を削除したい! <name>いいい</name> <age>25</age> </user> <user> <name>ううう</name> <age>30</age> </user>

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

javax.xml.transformは、android sdk level 8から対応です。level 8 = ver.2.2ですから、2.1では使えません。従って、それ以前の場合は、自分でコーディングしてXMLを解析するか、手頃なライブラリを探してくるしかないでしょう。残念ながら、手っ取り早い解決法はないようです。

関連するQ&A

  • XMLファイルの読み方

    以下の様なXMLファイルがあるとします。 "groupノード(?)のアトリビュートであるgrpIDとnumStdGrpの値を取得したいです。 JavaでDOMパーサーを使うことに限定します。 <?xml version="1.0" encoding="UTF-8"?> <dataHeader <numStudent>150</numStudent> <dataMain <band name="B1"> <group grpID="1" numStdGrp="15"/> </band> <band name="B2"> <group grpID="2" numStdGrp="10"/> </band> </dataMain> </dataHeader> 自分では試して見たのは以下まで。 File fXmlFile = new File("C:\XMLファイル名"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize(); (1)numStudentとdataMainノードまでは簡単: 例) NodeList nListDM = doc.getElementsByTagName("dataMain"); 上記からnListDM.item(0)してノード取得できて、getNodeName()で名前表示する。 (2)bandノード(?)もgetElementsByTagNameで取れます。 NodeList nListBand = doc.getElementsByTagName("band"); このノードリストの長さは2です。それぞれ、アトリビュート「name」の値(B1, B2)は以下の様にして取れます。 Node nNodeBand = nListBand.item(0); Element bElement = (Element) nNodeBand; して、bElement.getAttribute("name")。 問題はこの以降。 初めに書きましたように、 groupノード(?)のアトリビュートであるgrpIDとnumStdGrpの値どうやって取得するのでしょうか? getElementsByTagName(group)はだめです。どのbandのgroupか、区別できないので。 Java+XMLに詳しい方、教えてください。 よろしくお願いします。

    • ベストアンサー
    • 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
  • 2つのxmlファイルを利用したリレーションシップ(?)に関して

    2つのxmlファイルを使用し、リレーションシップ(?)を作成してDataGridViewに表示させようとしているのですがうまくいきません。ご教授お願いいたします。 xmlファイル1: <タグ1> <タグ2 属性21="a1" 属性22="a2"></タグ2> <タグ2 属性21="b1" 属性22="b2"></タグ2> <タグ2 属性21="c1" 属性22="c2"></タグ2> </タグ1> xmlファイル2: <タグ1> <タグ2 属性21="a1" 属性22="d2"></タグ2> <タグ2 属性21="b1" 属性22="e2"></タグ2> <タグ2 属性21="c1" 属性22="f2"></タグ2> </タグ1> 表示させたい内容: | d2 | a2 | | e2 | b2 | | f2 | c2 |

  • 改行がノード?(JAXP)

    xmlのノードについてですが、 <talkset> <name type="first">abc</name> <comment>hello!!</comment> </talkset> というxmlファイルがあった場合に、 JAXPでの、getNodeList()で全てのノードリストを 得ます(mynodelist=root.getNodeList())。 ここで、mynodelist.item(i)として、 上から、ノードを見ていくプログラムを作ったの ですが、 まず、最初にテキストノード(<talkset>の横の改行) 、次に<name>ノードがきて、次にテキストノード( </name>の横の改行?)が取り出されます。 この場合、本来、<name>ノードの後は属性ノードである type、次に、テキストノード(abc)そしてその後に、 改行(テキストノード)が取り出されるべきだと思う のですが、そうなりません(type属性と、abcが、 ノードとして、取り出せない)。 なにか分かる人、お願いします。

    • ベストアンサー
    • XML
  • Windows2003 XML ファイルの修正保存

    Windows2003 FTP の構築中(素人技術)で、標準FTPバナー・メッセージ止めるべき修正(WEB情報から修正内容取得)を行いますが、メモ帳で修正後、保存が出来ません。 ファイル C:\WINDOWS\System32\inetsrv\MBSchema.xml を保存できません。 パスおよびファイル名が正しいか確認下さい。 と出ます。FTPは、停止中です。 どなたかご指導賜れれば幸いです。

  • あるコード(JSP)のエラー

    htmlからフォームで、JSPのファイルにsubmitする、という流れを実装しているのですが、JSPのコンパイルのところ(?)で、下記のようなエラーが出てしまいます。フォームに入力させた、文字をXMLファイルに書き込むという処理です。 org.apache.jasper.JasperException: Exception in JSP: /day01-1/add.jsp:9 コードは以下のとおりです。 <%@ page contentType="text/html;charset=Windows-31J" import="java.io.*, javax.xml.parsers.*,javax.xml.transform.*,javax.xml.transform.dom.*, javax.xml.transform.stream.*,org.w3c.dom.*"%> <% request.setCharacterEncoding("Windows-31J"); //String[] string="meigen"; DocumentBuilderFactory objDbf = DocumentBuilderFactory.newInstance(); DocumentBuilder objDb = objDbf.newDocumentBuilder(); Document objDoc = objDb.parse(application.getRealPath("jsp10/day01-1/meigenuser.xml"));//解析するXML指定 Element elmmeigen = objDoc.createElement("meigen");//meigen要素 Text txt = objDoc.createTextNode(request.getParameter("meigen"));//htmlから送られてくる名言を格納 elmmeigen.appendChild(txt);//名言要素に、↑の名言テキストを挿入 //***属性挿入 Attr atr_id = objDoc.createAttribute("id");//属性 Attr atr_name = objDoc.createAttribute("name");//たち Attr atr_syutten = objDoc.createAttribute("syutten"); atr_id.setValue("1");//本当は1じゃ困るけど… atr_name.setValue(request.getParameter("name")); atr_syutten.setValue(request.getParameter("syutten")); elmmeigen.setAttributeNode(atr_id); elmmeigen.setAttributeNode(atr_name); elmmeigen.setAttributeNode(atr_syutten); objDoc.getDocumentElement().appendChild(elmmeigen);//最後にelmmeigenをルートノード配下に配置 //***出力 TransformerFactory fac = TransformerFactory.newInstance(); Transformer tran = fac.newTransformer(); StreamResult result = new StreamResult(new FileOutputStream(application.getRealPath("jsp10/day01-1/meigenuser.xml"))); tran.transform(new DOMSource(objDoc.getDocumentElement()),result); response.sendRedirect("meigen.html"); //xmlの構造は //<meigen id = "ID" name = "ハンドルネーム" syutten = "出展作品など">とする %> よろしくお願いします。

  • XSLTでの外部XMLファイルの読み込みについて。

    XSLTについて質問がございます。 下記のように、document関数を用いて外部のxmlを取り込んでいるのですが、 もし、そのxmlファイルが存在しなかった場合はエラーとなってしまいます。 この時、対象のxmlファイルが存在するか否かを、XSLTで調べる事は可能なのでしょうか? boolean関数を用いてみたりしたのですが、ファイルがない場合はやっぱりエラーになってしまいます。 どなたかご教授願います。 <!-- STYLESHEET --> <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="xsl1.xsl"/> <xsl:param name="doc" select="document('../XML/import.xml')"/> </xsl:stylesheet>

    • ベストアンサー
    • XML
  • C#にてlistView1からXMLファイルへ書込み方法について

    C#にてlistView1からXMLファイルへ書込み方法について 1  2  3  4 5 6 7 8 1 Aさん 50 男 2 Bさん 40 女 3 Cさん 60 男 と書かれていて XMLファイルの中身は、 <?xml version="1.0" encoding="utf-8"?> <Data> <p id="1" name="Aさん" age="50" seibetu="男"></p> </Data> この様なXMLファイルでlistView1にあるデータを全て書込みしたいのですが、どうしたら出来ますか? どなたか申し訳ありませんが、プログラムソース教えて戴けませんか?お願いいたします。

  • C# XMLデータ 更新について

    C# XMLデータ 更新について <?xml version="1.0" encoding="utf-8"?> <Data> <p id="1" name="Aさん age="20" seibetu="男"></p>  <p id="2" name="Bさん" age="30" seibetu="女"></p> </Data> C#でデータ更新ついて ID 2の所に name(名前)とage(年齢)を置換したいですが、 置換前 ID 2 名前 Bさん 年齢 30 置換後 ID 2 名前 Cさん 年齢 25 したいですが、どうしたら出来ますか? 又、ID 2にあるデータを削除したい場合、教えて戴けませんか? すみませんが、どなたか教えてお願いいたします。

  • xmlファイルが生成されない

    <?php //DomDocumentを呼び出す $dom = new DomDocument('1.0','UTF-8'); //要素ノード[document]を追加 $document = $dom->appendChild($dom->createElement('document')); //新しい要素をdocumentの子要素として挿入する $document->appendChild($dom->createElement('name','名前です')); $document->appendChild($dom->createElement('text','テキストです。')); //字下げや空白を考慮してきれいに整形した出力を行う $dom->formatOutput = true; //同階層にtest.xmlとして保存 $dom->save('test.xml'); //出力 echo $dom->saveXML(); ?> のように、同じディレクトリ内にXMLファイルを生成するphpプログラムを作成してみたのですが、 ブラウザからこのPHPファイルにアクセスしてもXMLファイルが作られません。どうすれば良いのでしょうか。 なにかphp,apache等の設定をしてないからでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう