我有一个我试图用C#读取的XML文件 我已经能够做很多事情,但我遇到了一个特定的问题。
这是XML文件:
<map version="1.0" orientation="orthogonal" renderorder="right-down" width="60" height="40" tilewidth="16" tileheight="16" nextobjectid="4" source="test.png">
<tileset firstgid="1" name="test" tilewidth="16" tileheight="16" tilecount="240" columns="24">
<image source="../test.png" trans="ffaec9" width="388" height="163"/>
</tileset>
</map>
我在尝试获取时遇到一些困难的属性都在<image>
标记中。我需要source
和width
。
我使用
在地图中但不在图像中的数据tileSize = int.Parse(doc.DocumentElement.GetAttribute("tilewidth"));
如何从source
获取width
和<image>
?
答案 0 :(得分:1)
您可以轻松使用Linq和XDocument
&amp; XElement
获取您需要的值:
var xDoc = XDocument.Parse("<my xml/>");
var tileset = xDoc.Element("map").Element("tileset");
var image = tileset.Element("image");
var tileWidth = int.Parse(tileset.Attribute("tilewidth").Value);
var source= image.Attribute("source").Value;
var width = int.Parse(image.Attribute("width").Value);
答案 1 :(得分:0)
您可以查看XPath。以下是一些示例和online demo:
string source = doc.SelectSingleNode("/map/tileset/image/@source").Value; // "../test.png"
string width = doc.SelectSingleNode("//image/@width").Value; // "388"
string height = doc.SelectSingleNode("//@height[last()]").Value; // "40"