1

次のような XML を変換したいと思います。

<products>
   <product>
     <Name>Bill</Name>
     <ID>1</ID>
     <Age>19</Age>
   </product>
   <product>
     <Name>Jim</Name>
     <ID>2</ID>
     <Age>23</Age>
   </product>
   <product>
     <Name>Kathy</Name>
     <ID>3</ID>
     <Age>53</Age>
   </product>
</products>

この形式に: コレクション内の名前、ID、年齢

次のように:

collection = [
'Bill-1-19',
'Jim-2-23',
'Kathy-3-53',
];

これを行う最善の方法は、それを正しく出力する XSLT スタイルシートを使用することだと思いますか? 私は本当にいくつかの助けを借りることができました.私はこれを何時間も理解しようとしています.

これが私がこれまでに持っているものです:

<!DOCTYPE html>
<html>
<body>
<script>
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else // for IE 5/6
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET","after.xml",false);
xhttp.send();
xml=xhttp.responseXML;

var products = xml.getElementsByTagName("products");
var arr = [];
for (var key in products){
    var stringVal = "";
    var nodes = products[key].childNodes;
    for (var ele in nodes){  
        if(nodes[ele]){
           stringVal = stringVal + nodes[ele];
        }
    }
    arr.push(stringVal);
}
console.log(arr);

</script>
</body>
</html>
4

1 に答える 1

0

これはテストされていませんが、これは IMO で動作するはずです。XML リストを反復して文字列を作成するだけです

var products = xml.getElementsByTagName("製品"); var arr = []; for (製品の var キー){ var stringVal = ""; var ノード = 製品[キー].childNodes; for (var ele in nodes){ if(nodes[ele]){ stringVal = stringVal + nodes[ele]; } } arr.push(stringVal); } console.log(arr);
于 2013-05-19T00:08:07.073 に答える