• ベストアンサー

XML文書の追加書き込みは可能?

毎回お世話になります。 今回の質問なのですが、あるXML文書に新しいデータ(タグ+データ+タグ)をどんどん追加していきたいのですが、いい方法はないでしょうか? たとえば、 <?xml version="1.0" encoding="Shift_JIS" ?> <test> <url></url> <url></url> : : <url></url> </test> といった具合に、<url>をどんどん増やしていきたいのです。 回答よろしくお願いします。

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

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

  • ベストアンサー
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

</test>を検索して<url></url></test> で置換すればいいと思いますが、Javaでプログラムを作らなくてもsedなどのエディタで操作することも出来ます。 そういうことでしょうか。

shotaro777
質問者

補足

返答ありがとうございます。 少し言い忘れていたので補足します(^_^;) たぶん上記のやり方だと一度メモリに全ソースを展開しなければならないと思うんです。 メモリに展開しないでできる方法はないでしょうか? 分かりにくくてすいません。 ずっと考えてるんですが、恐らくできないと予想はしています… もし、上記以外で何かいい案があれば書き込みよろしくお願いします。

その他の回答 (1)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

テキストエディタは常にファイル全体をメモリ上に展開しなければ操作できないというものばかりではありません。ストリームから読み込んだものをバッファ上で処理するというエディタもあります。とはいえ、一応一通りはファイルを読みとる必要はあります。 ファイルサイズが100MBもあって一通り読みとるのが短時間では不可能な場合には適当なサイズでファイルを分割しながら追加していけばいいのではないかと思います。読み出し時にファイルを連結するためのパーサのプログラムを書かなければなりませんが、アクセスが多いのであればバッファリングやバックグラウンドの連結処理を考える必要があります。しかし、そんなに大きなXMLのデータをインターネットで配信することは少ないでしょうね。 汎用コンピュータでは「直接編成ファイル」があり、たとえば<url><url>ごとに別のブロックに格納できますが、PCのOSではサポートされているものを知りません。

関連するQ&A

  • 妥当なXML文書

    XML文書で、下記のあ)い)で、妥当なXML文書は あ)になります。 では、い)は妥当ではないとしたら、どの部分が妥当ではないでしょうか。 これが理解できずに困っています。 <a/>は親要素にならないのでしょうか。ルートになるからでしょうか。 よろしくお願いします。 あ) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE a [ <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> ]> <a/> い) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE a [ <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> ]> <a/><b/>

    • ベストアンサー
    • XML
  • XSLで、XMLの空タグを制御したい。

    値がないXML文書に、 <exsample /> こう書かれてしまうものを、 <exsample></exsample> このように出力したいのですが、出来ずでした。 以下は、私のやり方です。 ■ XSL <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt"> <xsl:output method="xml" encoding="Shift_JIS" indent="yes" xalan:indent-amount="4"/> <xsl:template match="/"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> ■ XML <?xml version="1.0" encoding="Shift_JIS"?> <root> <section> <category> <exsample1>value</exsample1> <exsample /> </category> </section> </root> ご教授、よろしくお願いいたします。

    • ベストアンサー
    • XML
  • [Perl]XML::SimpleでSJIS

    Windows7、ActivePerl v5.24.1を使っています。 use XML::Simple; use Data::Dumper; my $data = XMLin('test.xml'); print Dumper($data); というコードで、以下のXMLファイルを読み込むと、 <?xml version="1.0" encoding="shift_jis"?> <root> <top id="1234"> <second>値</second> <third> <fourth>1234</fourth> <fifth>myvalue</fifth> </third> </top> </root> Couldn't open encmap shift_jis.enc: No such file or directory at C:/Perl/lib/XML/Parser.pm line 187. XML::Simple called at read_xml_test.pl line 10. というエラーがでます。 ググると、以下のサイトで解決できたという記事がヒットしますが このサイトはもう存在しません。 Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm なにかコード間のマップファイルと思われますが、 どなたかお持ちじゃないでしょうか?

  • 内容にテキストを持つタグの属性をXMLSchemaで表現するには?

    すみませんXML初心者です。質問をさせてください。 以下に示すXML文書についてのXMLSchemaは、どのように表現したらよいのでしょうか?教えてください。 よろしくお願いします。 <?xml version="1.0" encoding="Shift_JIS" ?> <root> <sub a="a">テスト</sub> </root>

    • ベストアンサー
    • XML
  • XMLファイルからXML Schemaを参照する方法?

    XMLファイルの設計をしています。 今まではDTDを使っていたのですが、 勉強するとXML SchemaのほうがXMLの規則にそっていたり、 データ型が多かったりして都合が良い面があると学びました。 そこでXML Schemaを使いたいと思うのですが、 XML SchemaとメインのXMLのファイルはどのように関係させたら良いのでしょうか? DTDのときは以下のように書いていたと思います。 <!DOCTYPE root SYSTEM "sample.dtd" > このような記述をXML Schemaのときには、どのように記載するのだろうと 疑問に思いました。 私なりに調べてみたのですが、 XML Schemaの記述方法は、大まかに理解したのですが、 関係方法をどうすれば良いかは、見つけられませんでした。 本を読んでも、書かれているように思えません。 以下の2つのファイルがあった場合、 【element1.xml】は妥当なXML文書だそうですが、 どのように関連付いているのでしょうか? 【element.xs】 <?xml version="1.0" encoding="Shift_JIS" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- 要素宣言 --> <xs:element name="売上高" type="xs:integer" /> </xs:schema> 【element1.xml】 <?xml version="1.0" encoding="Shift_JIS" ?> <売上高>1000</売上高> もしよろしければ、教えて頂けませんか? ぜひご教示お願いいたします。

    • ベストアンサー
    • XML
  • XercesCにて、EUCのXML文書をパースしたい

    Linux上でXercesCを使って、EUCのXML文書をパースしたいのですが、 サンプルで付いているDOMPrintに、EUCのXML文書を食わせると、 Message: An exception occurred! Type:TranscodingException, Message:Could not create a converter for encoding: EUC-JP などと表示され、正常にパースできません。 標準で付いている「iso-8859-1」というコードのxml文書は正常にパースできている のですが。。。 EUCはそのまま扱えないのでしょうか? 他のコードに一度変換するしかないのでしょうか・・・? なお、Windows環境ではSHIFT-JISの文書は正常にパース出来ているのですが。。 使用しているバージョンは、  XercesC : 2.60  OS : redhat9 です。

  • phpを使ってxmlの追加書き出しについて教えてください

    現在flashからphpに位を渡して、そこからxmlで書き出すということをしています。 phpからxmlを作成することは、なんとか無事にできるのですが、この場合一つのXMLデータしか作成できません。 fopen($fname."a")を使って追加で作成しようとすると $buf ="<?xml version=\"1.0\" encoding=\"" . $encode."\" ?> \r\n"; が二重に作成されてエラーが出ます。なにか解決策はないでしょうか? お願いします。 ソース ------------------------------------------------------------ <? function xml_write($fname,$roottag,$id,$encode,$val) { $file = fopen($fname,"w"); // XMLヘッダ書き出し // $buf ="<?xml version=\"1.0\" encoding=\"" . $encode."\" ?> \r\n"; fputs($file,$buf); // XMLルート書き出し // fputs($file,"<".$roottag.">\r\n"); // XMLルート書き出し1 // fputs($file,"<".$id.">\r\n"); // XML本文書き出し // foreach($val as $key => $oneval) { fputs($file,"<".$key.">" . $oneval . "</".$key.">\r\n"); } // XMLルート書き出し1 // fputs($file,"</".$id.">\r\n"); // XMLルート終了 // fputs($file,"</".$roottag.">\r\n"); fclose($file); } xml_write("./test/test.xml","doc","object","Shift_JIS",$_POST); ?> -----------------------------------------------------------------

    • ベストアンサー
    • PHP
  • xml

    今契約してるサーバーがSQLをつけるとものすごい金額になってしまうので。XMLに挑戦中です。 作ってみたのですが、ソースが間違ってる?のか表示できません、教えてください. name.xml <?xml version="1.0" encoding="shift-jis"?> <test no="1"> <name>test</name> <no>10</no> <tel>123-456-789</tel> </test> test.php <html> <head> <title>sample1</title> </head> <body> <?php $doc->load("name.xml"); $name = $doc->selectSingleNode("test"); $list = $name->selectNodes("*"); $no = $list->item(1); $text = " 番号 " . $no . "<br>"; print $text; ?> </body> </html>

    • ベストアンサー
    • PHP
  • XMLの素朴な疑問です。

    今日からXMLをはじめたもので、右も左も解らない状態なんですが、いろいろ見ていて素朴な疑問が沸いてしまいましたので、質問させてください。 例えば下のように書いたxml文書は正しいのでしょうか? <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>XML</TITLE> </HEAD> <BODY> <P>XML</P> </BODY> </HTML> =========================================== <?xml version="1.0" encoding="Shift-JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>aa</title> </head> <body><p>XML文書</p></body> </html> ========================================= 実際にIE6で見てみると上はDTDでエラーが出て下はこのファイルの先頭でエラーになります。 この原因を教えていただけませんでしょうか。

    • ベストアンサー
    • XML
  • xml宣言の文字コード変更

    xhtmlとcssでのコーディングを行った際、途中で「UTF-8」で作成してと言われました。 そのため、作成していたコードの冒頭をshift_jisからUTF-8にかきかえてみたところ、文字化け。ブラウザの表示をUTF-8に変えても化けたままなので、作業にならんと宣言をshift_jisに戻しました。 が、書き換えても文字化けが直りません。 宣言自体を消して保存しなおしたりもしたのですが、以前文字化けたままです。 テキストエディタで見るとちゃんとshift_jisになっているのですが、 これはどうすれば直るものなのでしょうか? 手を入れたのは以下の二行になります。(抜き出してるだけですので実際はheadタグ等を挟んでいます) 初期 <?xml version="1.0" encoding="shift_jis"?> <meta http-equiv="content-type" content="text/html; charset=shift_jis" /> ↓ UTF-8に書き換え <?xml version="1.0" encoding="UTF-8"?> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> ご教授ねがいます。