●
とりっくおあとりーと
方々のMMORPGではイベント三昧かな?
こんなんしたらUTF-8でのファイル出力が出来るようになったのでJAXP使うのは止め(笑)this.out = new PrintWriter( new OutputStreamWriter( new FileOutputStream( outname), this.getWriterEncoding()));
こんな感じにリソースとしてファイルを取得してたんだけど、これだとどうもファイルがキャッシュされるかなにかで、JAVA VMが動いている間にファイルを書き換えても、書き換えが反映されないみたい。InputSource xmlInp = new InputSource(getClass().getResourceAsStream(this.XMLNAME)); DOMParser parser = new DOMParser(); parser.parse(xmlInp); Document doc = parser.getDocument(); root = doc.getDocumentElement();
こんな風にしてみたら、書き換え後に読み込むとちゃんと反映されるようになりました。リソースとしてファイル名だけとって、ファイル名をパーサに渡してます。やり方として正しいかどうかは不明ですが、パーソナルなプログラムですしとりあえず動けばいいでしょう。java.net.URL xmlname = getClass().getResource( this.xmlfilename); this.xmlurl = xmlname.toString(); DOMParser parser = new DOMParser(); parser.parse( this.xmlurl); doc = parser.getDocument();
<?xml version="1.0" encoding="Shift_JIS"?> <Mpeg7 xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns="http://www.mpeg7.org/2001/MPEG-7_Schema"> <Description xsi:type="ContentEntityType"> <MultimediaContent xsi:type="AudioVisualType" id="1"> <AudioVisual> <MediaSourceDecomposition id="4"> <-- このAudioVisualSegmentをくりかえし --> <AudioVisualSegment id="5"> <MediaInformation id="6"> <MediaProfile id="7"> <MediaFormat> <Content href=""> </Content> <VisualCoding> <Format href=""> <Name>DivX5.02</Name> </Format> <Pixel resolution="640"/> </VisualCoding> <AudioCoding> <Format href=""> <Name>MP3</Name> </Format> <AudioChannels>2</AudioChannels> <Sample rate="32000"/> </AudioCoding> </MediaFormat> <MediaInstance id="mediaInstance-8"> <InstanceIdentifier>こみっくパーティー</InstanceIdentifier> <MediaLocator> <MediaUri>http://localhost/mov/comic-party/</MediaUri> </MediaLocator> </MediaInstance> </MediaProfile> </MediaInformation> <TextAnnotation type="story"> <FreeTextAnnotation>1〜13話</FreeTextAnnotation> </TextAnnotation> <TextAnnotation type="source"> <FreeTextAnnotation>TV</FreeTextAnnotation> </TextAnnotation> <TextAnnotation type="notes"> <FreeTextAnnotation>備考</FreeTextAnnotation> </TextAnnotation> </AudioVisualSegment> </MediaSourceDecomposition> </AudioVisual> </MultimediaContent> </Description> </Mpeg7>こんな感じ。ドキュメントが手元に無いので、スキーマ読みながらだいたいの感じで作ったのですが――
こんな感じに書いてみました。んでー、DOMでぱーすしてー、Jakartaのregexp使って検索ー……な予定。<Schema> <Element name="Movie" type="MovieDataListType"/> <ComplexType name="MovieDataListType"> <ComplexContent> <Element name="Item" type="MovieItemType" maxOccurs="unbounded"/> <Attribute name="id" type="ID"/> <Attribute name="endFlag" type="boolean" required="false" fixed="false"/> <!-- 収集が終了したか --> <Attribute name="preservation=" type="boolean" required="false" fixed="false"/> <!-- CD or DVDに退避したか --> </ComplexContent> </ComplexType> <ComplexType name="MovieItemType"> <ComplexContent> <Sequence> <Element name="Title" type="String"/> <!-- タイトル名 --> <Element name="Story" type="String"/> <!-- 話数 --> <Element name="Source" type="Source" minOccurs="0"/> <!-- 映像ソース --> <Element name="Notes" type="String" minOccurs="0"/> <!-- 備考 --> </Sequence> </ComplexContent> </ComplexType> </Schema>
RE re = new re( "正規表現");これだけで正規表現がつかえますよっ☆
boolean bool re.match( "対象文字列");