0

XML の値のリストからランダムな値を取得する必要があります。わかりやすく説明しましょう。それを私のXMLと考えてください。

<data>
    <value>
        <name>a</name>
        <age>1</age>
    </value>
    <value>
        <name>b</name>
        <age>2</age>
    </value>
    <value>
        <name>c</name>
        <age>3</age>
    </value>
    <value>
        <name>d</name>
        <age>4</age>
    </value>
    <value>
        <name>e</name>
        <age>5</age>
    </value>
</data>

ランダムな方法で動的に 3 つの値を解析する必要があります。つまり、a、b、c が次にページが読み込まれたときに 1 回表示される場合、d、b、e またはその他をランダムな順序で表示する必要があります。どのように私はそれに対処しなければなりません。

4

1 に答える 1

0

XMLの文字列をドキュメントに変換する関数は次のとおりです。その後、ドキュメントでDOMメソッドを使用できます。

var stringToXMLDoc = (function(global) {

  // W3C DOMParser support
  if (global.DOMParser) {
    return function (text) {
      var parser = new global.DOMParser();
      return parser.parseFromString(text,"application/xml");
    }

  // MS ActiveXObject support
  } else {
    return function (text) {
      var xmlDoc;

      // Can't assume support and can't test, so try..catch
      try {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(text);
      } catch (e){}
      return xmlDoc;
    }
  }
}(this));

例:

var xml = '<books>' + 
            '<book title="foo"/>' +
            '<book title="bar"/>' +
            '<book title="baz"/>' +
          '</books>';
var doc = stringToXMLDoc(xml);
alert(
  doc.getElementsByTagName('book')[2].getAttribute('title')
);

バリューノードで同様のことができるはずです。

于 2012-09-14T08:46:05.820 に答える