2017-05-18 15 views
0

特定のxmlファイルに配列の値を追加したいと思います。私のコードでは、ただ一つの数字を追加し、それを以下の数字に置き換えます。ここでコンテンツをXMLに追加する方法

は、コードは次のとおりです。

XML xml; 
    int start = 1000; 
    int end = 1901; 
    int[] multiZips = new int[end- start]; 


    for (int i = start; i < end; i++) { 

    multiZips[i-start] = i; 
    } 
    for (int j : multiZips) { 
    String zip = str(j); 

    xml = loadXML("sample.xml"); 
    XML firstChild = xml.getChild("childOne/childTwo"); 
    firstChild.setContent(zip + ", "); 
    print(firstChild.getContent()); 

    if (j < multiZips.length) { 
     saveXML(xml, "sample.xml"); 
    } 
    } 

私は私のXMLファイルに1000年と1901年の間にすべての数字を保存したいと思います。

ありがとうございます。

+0

希望の結果は良いでしょう、あなたの質問は何ですか? –

答えて

0

あなたが投稿コードでビットをオフに見ていくつかのことがあります。

  1. あなたが同じノードをロードしようとしたときに、複数回のロードと同じxmlファイルを保存しているが。
  2. xpathのようなものでノードにアクセスしようとしていますが、ProcessingのXMLライブラリでサポートされているとは思えません。しかし、ネストされたノードをその名前で取得することができます:XML firstChild = xml.getChild("childTwo");
  3. 条件は決して満たされません:if (j < multiZips.length)です。 jは、それはあなたがデータを保存するかは不明だ

901より >ある 1000から 1900に行きます。

あなたはカンマで値を連結したいとノードのコンテンツとして、あなたがこのような何かを行うことができますことを設定した場合:

XML xml; 
int start = 1000; 
int end = 1901; 
int[] multiZips = new int[end- start]; 

for (int i = start; i < end; i++) { 

    multiZips[i-start] = i; 
} 

//load the XML once 
xml = loadXML("sample.xml"); 
//get a reference to the child you want to append to 
XML firstChild = xml.getChild("childTwo"); 
//create a string to concatenate to 
String zips = ""; 

for (int j : multiZips) { 
    String zip = str(j); 

    //append to string 
    zips += (zip + ", "); 
} 
//add the concatenated string 
firstChild.setContent(zips); 
//save once 
saveXML(xml, "sample.xml"); 

あなたは個々のノードを保存したい場合は、あまりにもそれを行うことができます

XML xml; 
int start = 1000; 
int end = 1901; 
int[] multiZips = new int[end- start]; 

for (int i = start; i < end; i++) { 

    multiZips[i-start] = i; 
} 

//load once 
xml = loadXML("sample.xml"); 
//get a reference to <childtwo> 
XML firstChild = xml.getChild("childTwo"); 

for (int j : multiZips) { 
    String zip = str(j); 
    //create a new node (in this case we'll call it zip, but it can be something else) 
    XML newNode = new XML("zip"); 
    //set the value as it's content 
    newNode.setContent(zip); 
    //append the new node to the <childTwo> node 
    firstChild.addChild(newNode); 
} 
//save once 
saveXML(xml,"sample.xml"); 

なぜこのループを再利用すれば2回繰り返すのかはっきりしません:for (int i = start; i < end; i++)でもXMLコンテンツを追加できます。

+0

ありがとうございました@George、非常に助けていただきありがとうございます。今それは働いている!いくつかの異なるものを試して何時間も後に。 (私はコーディングの世界では新しい)。 オーストリアからの歓声。 –

+0

嬉しい私の答えは助けました。データをロードする、データをループする、データを追加する、データを保存する、データを保存する、など)何を達成するにはどうすればよいですか?各ステップ)?また、利用可能なリファレンスとチュートリアルをスローダウンし、訪問することをお勧めします。たとえば、[Daniel Shiffmanのデータチュートリアル](https://processing.org/tutorials/data/)には包括的で、XMLも含まれています –

関連する問題