gpt4 book ai didi

c# - 如何从Xml作为对象而不是字符串检索值?

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:53 25 4
gpt4 key购买 nike

我有一些使用XDocument解析xml文件的代码。

它可以正确检索值,但是我保存到xml中的某些值是Object类型。因此,当我从xml读取这些值时,即使我将它们强制转换为对象,它们也会以string值的形式出现:

XDocument doc = XDocument.Load ( file );
XElement xe = doc.Element ( "EffectFile" );

xe.Elements ( "Options" ).Any ( )
? xe.Elements ( "Options" ).Select (
o => o.Elements ( "Option" ).Select (
n => ( object ) n.Value ).First ( ) )
: null ) )


xml中显示的值:

...
<Option>88</Option>
...


"88"而不是 Object 88的形式出现。

我了解到,当我将 string强制转换为 Object时,它仍将是 string,但是有一种方法可以将其设置为实际值的 Object(无论可能是多少),而不是 string

因为这些不同,不是吗?

object value = 88;
object value = (object) "88";


之后,当我使用存储为 optionsobject[]值时,我希望能够执行以下操作:

int intValue = (int) value;

最佳答案

XML包含字符串-如果您确定要保存在xml中的什么位置,则可以将其解析为正确的类型-就像Tony Casale为int编写的那样。

或者,如果在某些地方可以有任何对象,则必须添加指定给xml读取代码的属性,该属性应在读取后将此节点更改为哪种类型。

像这样:

<option>
<name>some name</name>
<value type="int">123</value>
</option>
<option>
<name>some other name</name>
<value type="string">abcdefg</value>
</option>


然后,在您的代码中,您将必须检查从值标签转换每个字符串的类型。

关于c# - 如何从Xml作为对象而不是字符串检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5159292/

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