c# - 显示空白的 XML 元素值

标签 c# android xml linq xamarin

我正在使用 Xamarin 和 LINQ 从文件中提取 XML 元素的值并将它们显示在屏幕上。 C#程序是

Button b = (Button)FindViewById<Button>(Resource.Id.button);

    TextView t = (TextView)FindViewById<TextView>(Resource.Id.textView);

    XDocument X = XDocument.Load(Assets.Open("DataDump.xml"));

    XElement nodex = X.Element("x");
    XElement nodey = X.Element("y");
    XElement nodez = X.Element("z");
    XElement noder = X.Element("RightClick");
    XElement nodel = X.Element("LeftClick");

    b.Click += (object sender, EventArgs e) =>
    {


        t.Text = string.Format(" x={0}\n y={1}\n z={2}", nodex, nodey, nodez);
    };

XML文件是

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <x>0.214</x>
  <y>0.396</y>
  <z>9.842</z>
  <LeftClick>1</LeftClick>
  <RightClick>0</RightClick>
</root>

输出是:

enter image description here

我没有收到任何错误或异常,但在输出中所有元素的值都显示为空白。

如何让它显示正确的值?

更新:我试着仔细阅读和修改我的代码,我认为出于某种原因程序似乎认为 x、y 和 z 的值都是空的,即使我初始化了它们。

最佳答案

要获取 XElement 的值,您可以调用 Value属性(property)

var nodex = X.Root.Element("x").Value;

或转换为值的类型:

var nodex = (decimal)X.Root.Element("x");

如果您使用 XElement.Load 方法加载您的 xml,您将直接加载文档的根元素,因此,您可以像在帖子中尝试的那样获取子元素:

XElement X= XElement.Load(Assets.Open("DataDump.xml"));
var nodex = X.Element("x").Value;
//...

有关此主题的更多信息,请查看此 link .

关于c# - 显示空白的 XML 元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832274/

相关文章:

c# - AutoMapper 定义映射级别

c# - 使用扩展方法来类型转换一个坏主意吗?

java - 将图像从一个应用程序共享到 Whatsapp

c++ - 如何在 QT 中使用 QDomDocument 对象将字符串读取为 XML

python - 序列化程序不从查询集中写入单个对象

Xml 命名空间破坏了我的 xpath!

c# - 将 winforms 控件的属性绑定(bind)到多个对象属性

c# - 使用 SMTP 发送电子邮件并控制发件人地址

java - 从 Node 后端流式传输二进制数据(使用 FlatBuffers 创建)并在 Android 前端接收

java - 使用 GSON 反序列化 JSON 文件