0

私はこのエラーを持っています:

XmlException: 'chipdb' is expected file:///C:/Users/Mkh/Documents/MMBN3D/Assets/Resources/ChipDatabase.xml 行 12、位置 8。

次のファイルを解析しようとすると:

<?xml version="1.0" encoding="ISO-8859-1"?>
<chipdb>
    <chip>
        <name> Cannon1 </name>
        <dmg> 30 </dmg>
        <smallicon> </smallicon>
        <bigicon> </bigicon>
        <type> Straight </type>
        <element> None </element>
        <description> One of the most basic chips. </description>
    </chip>
</chipbd>

正しいチップを見つけて、このデータを使用して、他の場所で使用されるチップ オブジェクトを開始するだけです。これを行うために、私は XDocument を使用していますが、XML を扱ったことがないため、問題が発生しました。私が作ったコードは次のとおりです。

    using UnityEngine;

using System.Xml.Linq;
using System.Collections;

public class XMLAttackParser : MonoBehaviour
{
    XDocument doc;

    // Use this for initialization
    void Start ()
    {
        doc = new XDocument();
        doc = XDocument.Load( "Assets/Resources/ChipDatabase.xml" );
    }

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

    }

    bool searchChip ( string name )
    {
        var chips = doc.Descendants( "chip" );

        foreach (var item in chips)
        {
            if( item.Element( "name" ).ToString() == name )
            {
                Debug.Log( "Man" );
                return true;
            }
        }

        return true;
    }
}

誰かが私を助けることができますか?ありがとう。

4

1 に答える 1

3

chipdbドキュメントの最後にある終了タグのタイプを間違えました: chipbd

誰かが指摘しました (しかし彼のメッセージは削除されました)。あなたにも間違いがあると指摘されましたitem.Element( "name" ).ToString():

item.Element( "name" ).Value

また

(string)item.Element("name")

確かに、item.Element( "name" ).ToString()返されます:<name> cannon1 </name>

于 2013-07-23T16:30:59.217 に答える