トップページtech
542コメント171KB

XMLプログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
単におれが質問したいから立てたぞ!
0261デフォルトの名無しさんNGNG
私は入門書片手の初心者です。
キーボードから入力できない記号(?)があって困っています。
Unionと言う演算子(?)らしいのですが、Shift押しながら全部のキーを試しました。
でも、でませんでした。
皆さんはどうやって入力しているのでしょうか?
お助け下さい

0262デフォルトの名無しさんNGNG
>>261
http://pc.2ch.net/pcqa/
0263デフォルトの名無しさんNGNG
>>260
状態遷移図実はドキュメントと同期してない?
受理状態となるS7が見あたらないんだけど
0264デフォルトの名無しさんNGNG
>>258
とりあえず</salesdata>が現れるとこまでバッファに読み、</salesdata>を無視して
追記して最後に</salesdata>と書き込み、出力する。

とりあえず効率は良いし要件は満たしてるでしょ。

ただ組込系とかのタイトなシステムでやるのでない限りDOM使うのがいいと思うけどなー。
パフォーマンスチューニングも大事ですが、コードを単純化して
保守性をあげるのも大事な仕事だと思います。
0265デフォルトの名無しさんNGNG
XMLを選択する所が間違ってる気が。
0266デフォルトの名無しさんNGNG
>>263
直しまふ。すまそ。
0267デフォルトの名無しさんNGNG
Javaの問題かとも思うんだけどもし知ってる人がいれば
Windows2000
JBuilder7.0
Java1.3.1_02
xalan2_4_1
xerces2_2_1
でXSLT変換してるんだけど改行がCRCRLFになる。デバッガでは\r\nですね。
普通にCRLFにさせたいんだけど何か設定漏れかな?

参考にしたところはhttp://www.hellohiro.com/xslt.htm

よろしくおねがいします。

ちなみに<xsl:output method="text" encoding="shift_JIS" />とxsltファイルには指定してあります。
0268デフォルトの名無しさんNGNG
すみません.質問です.

<hoge>foo1,foo2,foo3</hoge>

のように,デリミタ区切りのXMLソースから,XQueryを使って,

<hoge>foo1</hoge>
<hoge>foo2</hoge>
<hoge>foo3</hoge>

としたいのですが,できるのでしょうか?
お手数ですが,よろしくお願いいたします.
0269デフォルトの名無しさんNGNG
>>265
>XSLT変換してるんだけど改行がCRCRLFになる。デバッガでは\r\nですね。
>普通にCRLFにさせたいんだけど何か設定漏れかな?

\r\r\n?
\nにしたいの?
0270デフォルトの名無しさんNGNG
>>269

\r\n -> \n

バイトなら
CRCRLF -> CRLF
0x0d 0x0d 0x0a -> 0x0d 0x0a

にしたいっす。
0271デフォルトの名無しさんNGNG
>267
状況がそれだけじゃわかんないよ。
CRLFの入力をテキストモードで読みこんでCRLF補完された、または
CRLFのデータをテキストモードで書き出しでCRLF補完されただけって
気がするけど。
ファイルの読み書きの仕方が悪いとしか言いようがない。
0272267NGNG
XMLはDocumentにプログラムでガリガリかいてます。

public static String n2S(Node targetNode,
String xsltFileResourceName)
throws IOException, TransformerConfigurationException,
TransformerException {

ClassLoader cl = ClassLoader.getSystemClassLoader();
java.net.URL uri = cl.getResource(xsltFileResourceName);
StreamSource xslsrc = new StreamSource(uri.openStream());

StringWriter sw = new StringWriter();
TransformerFactory factory =
TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xslsrc);
transformer.transform(new DOMSource(targetNode),
new StreamResult((Writer)sw));
return sw.toString();
}

よろしくおねがいします。
0273268NGNG
すみません.どなたからもレスがないので,やはり無理なのでしょうか.
それとも簡単すぎるのでしょうか.できればコメント願います.
...XQueryはデリミタを解釈できない...

再掲載:
<hoge>foo1,foo2,foo3</hoge>
のように,デリミタ区切りのXMLソースから,XQueryを使って,
<hoge>foo1</hoge>
<hoge>foo2</hoge>
<hoge>foo3</hoge>
としたいのですが,できるのでしょうか?
お手数ですが,よろしくお願いいたします.
0274デフォルトの名無しさんNGNG
>>273
ここじゃなくてWebプログラミング板で聞いたら?
http://pc.2ch.net/php/
0275デフォルトの名無しさんNGNG
どっかに、VC++でSAX使ったサンプル、無い?
0276デフォルトの名無しさんNGNG
>>275
一応つっこんでおくとどの言語でも大体仕様一緒なんだから勝手に読み解けや。
0277デフォルトの名無しさんNGNG

君、大雑把過ぎ。
0278デフォルトの名無しさんNGNG
↑俺はそうは思わんぞ。
君プログラマに向いてない。
0279デフォルトの名無しさんNGNG
w3cがメソッド仕様まで決めてるのって珍しい気もする
0280デフォルトの名無しさんNGNG
>>279
DOMとかSAXとかって言語問わず同じ手順で操作出来るのが売りなのでは?
0281デフォルトの名無しさんNGNG
手順は同じでもJavaとC++つかVC++からではそれ以前の準備が大分違う罠。
MSXMLだったらCOMだしな。Java+XMLの達人でもいきなりだとサンプルなし
では難しいと思われ。
0282デフォルトの名無しさんNGNG
MSXMLもjavaのもlibxmlも普通に使えたよ。特に困ることもなかった。
0283デフォルトの名無しさんNGNG
>>282に同意
0284デフォルトの名無しさんNGNG
>>275
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxml/html/xmlpaddownload.asp
0285まちがいNGNG
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxml/html/sax2jumpstart.asp
0286デフォルトの名無しさんNGNG
>>268の質問に答えられるやつは一人もいないのか?
ちなみにおれは知らん。ごめんよ。
0287デフォルトの名無しさんNGNG
>>268
XQuery使ったこと無いけど、本当にXQueryじゃないと駄目なの?
XSLTとか使ってると簡単なことなら問題ないけど、ちょっと複雑なことをやろうとすると面倒になるよ。
XSLTで改行を<br>に変換しようとしただけでユーザ定義関数作る羽目になったんで。
たぶんXQueryも同じじゃないかなと思うけど。
個人的にはこの場合はXPathとか使って値を取得してから普通にプログラミングでやった方が良いと思うよ。
0288268NGNG
>>286
ありがとうございます.反応していただいただけでもうれしかったです.

>>287
反応していただき、ありがとうございます.
XQuery以外ですと,JavaScriptしか他はないといったところです.
自分が組める組めないという事情とはちょっと異なり,それしか
手段がないといったところです.

いずれにせよ,ちょっと難しそうですね.
いろいろありがとうございました.
0289デフォルトの名無しさんNGNG
FILE で読む。これ、最強。
0290デフォルトの名無しさんNGNG
MSXMLのDOMを使ったコーディングをよーくやってます。
たまにDOMのクラスにメソッドやイベントを書き換えたり追加したてぇって思いますよ。
例えばXMLファイルの整合性を保つためにロック機構を実装しようと、DOMDocument
クラスのLoad,saveメソッドを書き換えたいなぁっと。
MSXMLを使っている限りアクロバティックなコーディングをしないと無理?
Javaを使えばオーバーライドやらを使えばできるんですか?
0291◆nZptw02DTU NGNG
>>290
ロックは別の機構でしましょう。
ASPならServer.Lockだったかな?
VBとかならセマフォか?
一個ロック用COMを用意しておくと使い回しが便利だとは思うけどつくってません。
0292デフォルトの名無しさんNGNG
>>291
書込み可で開いたときにロックファイルを置くってなレベルで
いいんですよ。ただし、Load,save共に書き換えて置かないと
おかしくなりますが。
Server.Lock?ってありましたっけな。調べよ。後で。今は手
元にMSDNないし。
0293◆nZptw02DTU NGNG
>>292
思い出した。
Server.ApllicationLock
0294デフォルトの名無しさんNGNG
>>293
はて?ありましたっけ?そういうメソッド。
ちなみにあちしはNT4で開発してるのでIIS4です。IIS5?
ひょっとして.NETとか?
0295◆nZptw02DTU NGNG
>>294
ごめんなさい。
適当に書いていること丸わかり。

Application.Lock
http://www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&oe=UTF-8&q=Application.Lock&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0296デフォルトの名無しさんNGNG
XML初心者です、JavaでXMLを扱っているんですが次のような例外がでて困ってます。
SAXParseException : the root element is required in well-formed document
これってXML文書本体に誤りがあるってことですよね?
でもXML文書本体もスキーマも正しいはずなんですが、どうしてなんでしょうか?
誰かおねがい!!
0297デフォルトの名無しさんNGNG
>>296
> でもXML文書本体もスキーマも正しいはずなんですが

思い込み。
0298デフォルトの名無しさんNGNG
>>296
> でもXML文書本体もスキーマも正しいはずなんですが

証拠は?
0299 ◆oKgODJRETc NGNG
>>295
なーるほど。
(多分)
読み込み、書込みの前後で必ずApplication.Lock/Application.UnLock
をして同時に読み書きが行われるのを避けると。
ASPでの実装はそれでオッケーそうですな。
0300 ◆oKgODJRETc NGNG
ASPでの実装はオッケ―です。どうもでした。ここからは別の話です。

Javaにヒジョーに興味があります。
>>290
であちしが書いたような、XML DOMのメソッド書換えってJavaだとで
きるんですか?
0301デフォルトの名無しさんNGNG
MSXMLってCOMっしょ。ならアグリゲーションじゃないかねぇ。
委譲書くのがめんどいけど。
0302デフォルトの名無しさんNGNG
>>296
パーサーと、XML文書、クラスパスの情報を書け
0303 ◆oKgODJRETc NGNG
>>301
いや、JavaでXML使うんだから、MSXMLは使わないです。
確かJavaでもXMLのDOMってありましたよね。
0304◆nZptw02DTU NGNG
>>303
Xerces かな。
.save とか .load とかっていう便利な代物無いから適当に書いてください。

でも、別環境との排他はファイル存在排他か、DBをつかわないと出来ないよ。
WindowsとASPとかはCOM経由で同一排他ロジックが利用できるけどね。
0305デフォルトの名無しさんNGNG
DocumentBuilderFactory.newInstance().newDocumentBuilder()
TransformerFactory.newInstance().newTransformer()
0306デフォルトの名無しさんNGNG
fprintf(fp,"<?xml version="1.0" encoding="UTF-8" ?>\n");
0307デフォルトの名無しさんNGNG
>>306
Cの基本からやり直せ
0308デフォルトの名無しさんNGNG
質問です。
XMLDOMを使用した場合、各タグのパラメータを取得するには
getElementsByTagNameメソッドを使用しますが、このパラ
メータを更新したいときはどのようなコーディングをすれば
良いでしょうか? 使用するメソッドがわからないです・・・。
0309◆nZptw02DTU NGNG
>>308
なにがわからん?

a = domdoc.getElementsByTagName("").value
で取得できれば
domdoc.getElementsByTagName("").value = a
で設定。
0310デフォルトの名無しさんNGNG
XMLはコンピュータの可能性を狭めている
0311308NGNG
>>309
 ありがとうございます!
 
 その通り、パラメータセットを逆にしてあげるだけで
 いいのかな?と思ったんですけど、上記のように実装
 してもデータが反映されないんですよ。ファイル更新
 時間も変わらないし。
 このあとで何か命令が必要なんでしょうか?
 ちなみに値の取得はできてます(確認しました)。

Set xmldoc=CreateObject("Microsoft.XMLDOM")
xmldoc.async=false
xmldoc.load(ファイルパス)
set strData = xmldoc.getElementsByTagName(タグ名)
domdoc.getElementsByTagName("").value = a
0312308NGNG
あ、セットしてる箇所はこっちでした
strData.Item(0).text = a
0313デフォルトの名無しさんNGNG
fprintf(fp,"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
0314◆nZptw02DTU NGNG
>>311
保存してる?
MSXMLなら.save
それ以外は自分で調べて。

オンメモリのドキュメントは変更されてるから。
0315デフォルトの名無しさんNGNG
>>306-307

>>313
やり直してきたみたいだね。感心感心。
0316308NGNG
>>314
 できました! そうですね、保存処理をすっかり
 忘れてました・・・(恥)。ありがとうございました。

 ただそのまま保存すると2バイト文字が内部コード(UTF-8)
 の3バイト形式になってしまうんですね。
 元々の形式が「𘚟」だったので・・・。変換モジュール
 作るしかないですね?
0317◆nZptw02DTU NGNG
>>316
そんなことはないよ。
どうやって保存してる?.save()?
>>313のようにXML宣言しているところをencoding="Shift_JIS"にしてる?
0318308NGNG
>>317
「encoding="UTF-8"」です。元々作成データはUTF-8なんです。
 ただ、作成したいのはUTF-8の3バイトコードじゃなく、
 "𘚟"の文字体系なんですね。
 なので、Save処理を実行すると当然ながらデータは元々の体系
 ではなく3バイトコードになってしまうのでマズイ、と。
0319308NGNG
あ、ばけてた。「&#99999;」ですね。
0320◆nZptw02DTU NGNG
>>318
全部数値実態参照にしたいの?
なんでかなー?

うまいやり方はあまり思いつきません。
何か方法あるかな?
0321デフォルトの名無しさんNGNG
XML仕様書のEBNFやめてほしいよ・・・。あいまいでつかみにくい。
例えば「正規表現で表すものは大文字で始めます」とかイットキナガラ
「prolog」が大文字で始まらないのはなんなんだよっ
0322デフォルトの名無しさんNGNG
xslとxsltの違いって何?
0323◆nZptw02DTU NGNG
>>322
XSL=XSLT + XSL-FO
0324デフォルトの名無しさんNGNG
XSL-FO知らなかった。サンクス
0325デフォルトの名無しさんNGNG
すいません。
Cでコーディングしてるんですが、
IXMLDomDocument* aaa
みたいにして、かつCreateInstanceしてさらにaaaを、LoadXMLとかLoadしてDOMつくるじゃないですか。
今度はbbbを、aaaと同じようにして別のXMLで作成して、bbbをaaaに代入することはできるんですか?
処理が死んでしまうんですが・・・
どなたか詳しい方に教えていただきたいんですが。
よろしくお願いします。
0326デフォルトの名無しさんNGNG
「代入」とは?
「処理が死んでしまう」とは?

XML以前の予感
0327デフォルトの名無しさんNGNG
Javaの話だが、xercesだけでXPath式使えないのかな
xalanのXPathAPIクラス使えばいいんだろうが、xalan.jar使いたくない
でもDOM/SAXは辛い
0328デフォルトの名無しさんNGNG
>>326
学生なんですいません。
「代入」・・・bbbのXML文書をaaaにコピーしたい。元々のaaaのXMLはもう要らない。
「処理が死ぬ」・・・実行時にエラーが発生するという意味です。
むいてないんですかね、おれ。
0329デフォルトの名無しさんNGNG
>>328
どんなコードか載せてみれ。
0330デフォルトの名無しさんNGNG
>>329
今ないんで明日ガッコからもってきます。
レスありがと。
0331デフォルトの名無しさんNGNG
これっぱかしのやりとりでは適性は判断できないが…「エラーが発生」って何?
APIがエラーを返すのか、OSが例外を出すのか、はたまた…。
0332デフォルトの名無しさんNGNG
適性と言うより経験が無い、という方が正しそう。
とにかくコード
0333デフォルトの名無しさんNGNG
333ゲットついでに教えてください

XMLマスターってどんな資格?
XMLは元々そこそこ詳しいし、ちょっとした暇を見つけて取得しようかと考えているんだけれど。
少なくとも海外では使えなさそう、という事だけはわかりました。

後、他に(海外含めて)XML関係の資格ってどんなのがあるでしょう?
0334デフォルトの名無しさんNGNG
>>333
↓こっち嫁

XMLマスターってどうよ?
http://school2.2ch.net/test/read.cgi/lic/1002557224/

んでXMLマスタープロフェッショナルの資格を取って勇者になれ。
そしてスレを救え。たのんだ。
0335デフォルトの名無しさんNGNG
>>334
サンクス。しかしそのスレをみると、やはり使い道のない資格の様な気がする。

そのスレで紹介されていたIBMの資格がちょっと気になる。
http://www-1.ibm.com/certify/tests/obj141.shtml
今度アメリカに遊びに行くついでに試験受けてみようかな…
0336デフォルトの名無しさんNGNG
>>335
XMLマスターが使い道なければIBMの試験はもっと使い道ねーよ
もういい帰ってくれ。
0337デフォルトの名無しさんNGNG
>>336
アホ発見(プ
0338デフォルトの名無しさんNGNG
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!>>337
   \|   \_/ /  \_____
     \____/
0339デフォルトの名無しさんNGNG
複数のXMLにたいして検索をかけて、情報をとってくる事を考えてます。
言語はjavaなんですけど、
XQueryとか、そういうXMLの問い合わせ言語で
実際に使えるものはあるのでしょうか?

やっぱりDOMやSAXで自分で作るほうがいいでしょうか?
0340デフォルトの名無しさんNGNG
>>339
XPath
0341デフォルトの名無しさんNGNG
Jakarta Commons JXPath
http://jakarta.apache.org/commons/jxpath/index.html
0342339NGNG
JXPath調べてみます。
ありがとうございました。
0343デフォルトの名無しさんNGNG
 Dim objDoc As New XmlDocument()
 objDoc.Load("sample.xml")
 Dim count As Integer

 objRoot = objDoc.DocumentElement
 objAAA = objRoot.childNodes

★For i = 0 To (objAAA.Length - 1)
  count = count + objAAA.item(i).Length
 Next

VB.NETでDOMの勉強をしているのですが、上記のコードの★の部分で
以下のようなエラーが出てしまいます。Lengthプロパティを取得するには
どうすばれ良いでしょうか?

>'System.MissingMemberException' のハンドルされていない例外が
>microsoft.visualbasic.dll で発生しました。
>?追加情報 : 型 'XmlChildNodes' でパブリック メンバ 'Length' が見つかりません。
0344デフォルトの名無しさんNGNG
エラーメッセージのまんまやん。
0345デフォルトの名無しさんNGNG
>>344
済みません、始めたばかりなもんで本当に対処の方法が分かりません。
ヒントでもいいのでお願いします。
0346デフォルトの名無しさんNGNG
XmlChildNodesをヘルプで見れば?
0347デフォルトの名無しさんNGNG
>>343
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemXmlXmlNodeListMembersTopic.asp
0348デフォルトの名無しさんNGNG
>>345
XmlChildNodesにメンバ"Length"が無い
これ以上やさしく書くのは不可能
0349デフォルトの名無しさんNGNG
あ、分かりました…ノードの数はLengthじゃなくてcountだったんですね
ありがとうございました。
手元のXMLの本ではLengthを使ってるんですが…
0350デフォルトの名無しさんNGNG
.NETのXMLライブラリはDOM API準拠じゃないと思った
0351デフォルトの名無しさんNGNG
てことはVB.NETで343みたいな操作するやつは
DOMじゃないってこと?
0352デフォルトの名無しさんNGNG
いや、DOM相当の機能はあるけど、W3CのDOM APIそのままじゃないってこと。
あれ、でもDOM APIがLengthなんて使うわけないよな・・・
0353IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0354デフォルトの名無しさんNGNG
もう2chも終わりだな
0355デフォルトの名無しさんNGNG
なんでも俺を実験に使うそうで
0356IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0357デフォルトの名無しさんNGNG
fu-n
0358デフォルトの名無しさんNGNG



          これはぼくの自作自演スレを根底から揺るがす大事件だ



ダレカ、カキコンデクレ・・・
0359デフォルトの名無しさんNGNG
>>40
初めてひろゆきにレス貰った。
0360デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
■ このスレッドは過去ログ倉庫に格納されています