gpt4 book ai didi

C# 读取 XML 文件

转载 作者:行者123 更新时间:2023-11-30 21:40:47 26 4
gpt4 key购买 nike

我正在开发一个从 XML 文件读取的应用程序。但是我遇到了问题。我的 XML 文件如下所示:

<variable>
<varName>Love</varName>
<type>int</type>
<value>0</value>
</variable>

我是这样读的:

XmlDataDocument xmldoc = new XmlDataDocument();
XmlNodeList xmlnode;
FileStream fs = new FileStream(fName, FileMode.Open, FileAccess.Read);
xmldoc.Load(fs);
xmlnode = xmldoc.GetElementsByTagName("variable");
for (int i = 0; i <= xmlnode.Count - 1; i++)
{
Variable elem = new Variable();

for (int j = 0; j < xmlnode[i].ChildNodes.Count; j++)
{
if (xmlnode[i].ChildNodes.Item(j).Name == "varName")
elem.varName = xmlnode[i].ChildNodes.Item(j).InnerText;

if (xmlnode[i].ChildNodes.Item(j).Name == "type")
{
if (xmlnode[i].ChildNodes.Item(j).InnerText == "int")
elem.type = VariableType.INT;

if (xmlnode[i].ChildNodes.Item(j).InnerText == "bool")
elem.type = VariableType.BOOL;
}

if (xmlnode[i].ChildNodes.Item(j).Name == "value")
elem.value = xmlnode[i].ChildNodes.Item(j).InnerText;
}
}

在这段代码之后我应该得到我的 elem.name="Love" elem.value=0 elem.type=INT但是我有四个 elem 变量首先具有值 我希望其他变量具有 type="INT" others (name, value) =null。有任何想法吗。提前致谢。

最佳答案

首先你需要一个这样的对象:

[XmlRoot(ElementName = "variable")]
public class Variable
{
[XmlElement(ElementName = "varName")]
public string VarName { get; set; }

[XmlElement(ElementName = "type")]
public string Type { get; set; }

[XmlElement(ElementName = "value")]
public string Value { get; set; }

}

然后像这样反序列化您的 XML:

var result = XmlDeserializer<Variable>(File.ReadAllText("your path"));

注意:这是我的自定义 XML 反序列化器:

public static T XmlDeserializer<T>(string xmlString)
{
var instance = default(T);
var xmlSerializer = new XmlSerializer(typeof(T));
using (var stringreader = new StringReader(xmlString))
instance = (T)xmlSerializer.Deserialize(stringreader);

return instance;
}

关于C# 读取 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44261853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com