0

Unity3D で C# を使用して XML ノードを追加および削除する必要があります。XML ファイルにはPurchased-AssetsとがありUnbought-Assetsます。UnPurchased-Assetボタンをクリックすると、ノードから名前付きを削除し、このアイテムをとしてUnbought-Assets追加したいと考えています。どこから始めればよいかわかりません。Purchased-AssetsPurchased-Asset

これまでのコード (C#):

using UnityEngine;
using System.Collections;
using System.Xml;
using System.IO;

public class MyAppStuffCode : MonoBehaviour
{
    XmlDocument xml;
    public XmlNodeList _name;

    //Used to load XML file.
    xml = new XmlDocument();
    xml.Load(Application.dataPath + "/Resources/MyAppStuffXml.xml");

    // Use this for initialization
    void Start () 
    { 
    }

    // Update is called once per frame
    void Update () 
    {
    }

    public void OnButtonClicked(string BName)
    {
        // Code to add/remove XML nodes here!
    }
}

XML ファイルの例:

<TreasureChart>
    <Dudes>
        <Rapper>

            <!-- Purchased assets -->

            <Purchased-Assets>
                <Purchased-Asset>
                    <Name>BackTalk</Name>
                    <ID>A</ID>
                    <Points>20</Points>
                </Purchased-Asset>
                <Purchased-Asset>
                    <Name>Beard</Name>
                    <ID>B</ID>
                    <Points>20</Points>
                </Purchased-Asset>
                <Purchased-Asset>
                    <Name>IntroRap</Name>
                    <ID>C</ID>
                    <Points>20</Points>
                </Purchased-Asset>
                <Purchased-Asset>
                    <Name>Moustache</Name>
                    <ID>D</ID>
                    <Points>20</Points>
                </Purchased-Asset>
                <Purchased-Asset>
                    <Name>MyFaceDudeRap</Name>
                    <ID>E</ID>
                    <Points>20</Points>
                </Purchased-Asset>
                <Purchased-Asset>
                    <Name>MyFaceMyRap</Name>
                    <ID>F</ID>
                    <Points>20</Points>
                </Purchased-Asset>
            </Purchased-Assets>

            <!-- Unbought assets -->

            <Unbought-Assets>
                <UnPurchased-Asset>
                    <Name>Share</Name>
                    <ID>D</ID>
                    <Points>20</Points>
                </UnPurchased-Asset>
                <UnPurchased-Asset>
                    <Name>SunGlasses</Name>
                    <ID>E</ID>
                    <Points>20</Points>
                </UnPurchased-Asset>
            </Unbought-Assets>
        </Rapper>
    </Dudes>
</TreasureChart>
4

1 に答える 1

4
//Create a new XML element.
XmlElement node = xmlDocument.CreateElement("NewElement");

//Use node.AppendChild(child) to add more nodes to the node.

//Add the new element to the root of the document.
xmlDocument.DocumentElement.AppendChild(node);

//Remove the new element from the root of the document.
xmlDocument.DocumentElement.RemoveChild(node);

ドキュメント内の特定のノードを見つけるには、インデクサーを使用します。

//Get the root node.
XmlElement root = xmlDocument.DocumentElement;

//Get the "Purchased-Assets" node that is nested inside the root.
XmlElement assets = root["Purchased-Assets"];

//Loop though each child
foreach(XmlNode childAsset in assets.ChildNodes)
{
     //Find the "ID" element of the child, you could easily replace this
     //to find the "Name" element.
     XmlElement id = childAsset["ID"];

     //If there is an "ID" element
     if(id != null)
     {
         //if the id node of the current child equals "20"
         if(id.InnerText.Equals("20"))
         {
              //then remove the asset from the "Purchased-Assets" node
              assets.RemoveChild(childAsset);
         }
     }
}

詳細については、MSDN: XmlDocumentを参照してください。

于 2013-06-18T15:57:34.870 に答える