使用C#和XDocument进行XML分析-XmlException:';文件';应为
本文关键字:应为 文件 -XmlException 分析 XDocument 进行 XML 使用 | 更新日期: 2023-09-27 18:24:22
我得到了这个错误:
XmlException:应为"chipdb"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;
}
}
有人能帮我吗?谢谢
您将chipdb
误键入为文档末尾的结束标记:chipbd
。
有人指出(但删除了他的消息),你在:item.Element( "name" ).ToString()
上也有一个错误,应该是:
item.Element( "name" ).Value
或
(string)item.Element("name")
事实上,item.Element( "name" ).ToString()
将返回:<name> cannon1 </name>