下記のようなサンプルで、連想記憶配列urllistをXML化する方法を教えてください。

Prototype.js(http://prototype.conio.net/)でできそうなんですが・・・
<html>
<head>
<script language="JavaScript">
function test()
{
var urllist;
var element;
urllist = form1.urllist.value;
url = urllist.split("\n");
for( i = 0; i < url.length; i++ ){
element = url[i].split("\\");
url[i] = new Array();
url[i]["element"] = element;
/*
for( j = 0; j < url[i]["element"].length; j++ ){
alert( url[i]["element"][j] );
}
*/
}
}
</script>
</head>
<body>
<form name="form1">
<input type="button" onClick="test()" value="test" /><br>
<textarea name="urllist" cols="100" rows="10">
C:\hoge\foo\aaa.html
C:\hoge\foo\bbb.html
C:\hoge\foo\bar\ccc.html
C:\hoge\hogehoge\123.html
C:\hoge\456.html
</textarea>
</form>
</html>
</body>

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2006/12/21 11:27:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:STRing No.2

回答回数351ベストアンサー獲得回数36

ポイント60pt

#1 のリンク先を統合してこのようにしたら動作しましたよ。

<html>
<head>
<script type="text/javascript" src="./prototype.js"></script>
<script language="JavaScript">

var extension = {
  toXMLString: function() {
    return this.map(function(pair) {
      return "<"+pair.key+">"+ ( 
       typeof  pair.value == 'string' ? pair.value  : $X(pair.value).toXMLString()
      ) +"</"+pair.key+">";
    }).join('');
  }
}

function $X(object) {
  var hash = $H(object);
  Object.extend(hash, extension);
  return hash;
}



function test()
{
var urllist;
var element;
urllist = form1.urllist.value;
url = urllist.split("\n");
for( i = 0; i < url.length; i++ ){
element = url[i].split("\\");
url[i] = new Array();
url[i]["element"] = element;
/*
for( j = 0; j < url[i]["element"].length; j++ ){
alert( url[i]["element"][j] );
}
*/
}

var h = $X(url);
alert(h.toXMLString());

}
</script>
</head>
<body>
<form name="form1">
<input type="button" onClick="test()" value="test" /><br>
<textarea name="urllist" cols="100" rows="10">
C:\hoge\foo\aaa.html
C:\hoge\foo\bbb.html
C:\hoge\foo\bar\ccc.html
C:\hoge\hogehoge\123.html
C:\hoge\456.html
</textarea>
</form>
</html>
</body>

と云うか、最終的に XML化したいものは変数 url に入っているのでは?

urllist は textarea の中身を引っ張った後は書き込まれていませんし。

question:1166599547 ダミー

id:P-mako

ご回答ありがとうございます。

ご指摘のとおり動作しました。

2006/12/21 11:27:17

その他の回答1件)

id:tikirou No.1

回答回数80ベストアンサー獲得回数8

ポイント10pt

以下のページにサンプルがありました。

参考になりますでしょうか?

http://www.virtual-tech.net/blog/2006/12/prototypejs-xmljavascri...

id:P-mako

このサンプルの

var h = $X(h0);

の箇所を

var h = $X(urllist);

に変更してやってみたのですが、NGでした。

2006/12/20 17:10:44
id:STRing No.2

回答回数351ベストアンサー獲得回数36ここでベストアンサー

ポイント60pt

#1 のリンク先を統合してこのようにしたら動作しましたよ。

<html>
<head>
<script type="text/javascript" src="./prototype.js"></script>
<script language="JavaScript">

var extension = {
  toXMLString: function() {
    return this.map(function(pair) {
      return "<"+pair.key+">"+ ( 
       typeof  pair.value == 'string' ? pair.value  : $X(pair.value).toXMLString()
      ) +"</"+pair.key+">";
    }).join('');
  }
}

function $X(object) {
  var hash = $H(object);
  Object.extend(hash, extension);
  return hash;
}



function test()
{
var urllist;
var element;
urllist = form1.urllist.value;
url = urllist.split("\n");
for( i = 0; i < url.length; i++ ){
element = url[i].split("\\");
url[i] = new Array();
url[i]["element"] = element;
/*
for( j = 0; j < url[i]["element"].length; j++ ){
alert( url[i]["element"][j] );
}
*/
}

var h = $X(url);
alert(h.toXMLString());

}
</script>
</head>
<body>
<form name="form1">
<input type="button" onClick="test()" value="test" /><br>
<textarea name="urllist" cols="100" rows="10">
C:\hoge\foo\aaa.html
C:\hoge\foo\bbb.html
C:\hoge\foo\bar\ccc.html
C:\hoge\hogehoge\123.html
C:\hoge\456.html
</textarea>
</form>
</html>
</body>

と云うか、最終的に XML化したいものは変数 url に入っているのでは?

urllist は textarea の中身を引っ張った後は書き込まれていませんし。

question:1166599547 ダミー

id:P-mako

ご回答ありがとうございます。

ご指摘のとおり動作しました。

2006/12/21 11:27:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません