【问题标题】:How to show Xml child element name with XDocument in C#?如何在 C# 中使用 XDocument 显示 Xml 子元素名称?
【发布时间】:2016-02-04 10:54:16
【问题描述】:

您好,我想使用 linq 和 xdocument 显示根节点的子节点的名称,但没有找到任何同样方便的东西。我的 xml 在下面给出

<temp>
<Movies>
    <Title>Man Of Steel</Title>
    <Title>Kung Fu Panda</Title>
    <Title>Thor</Title>
</Movies>
<Cars>
    <Title>Racing</Title>
    <Title>Vintage</Title>
    <Title>Luxary</Title>
</Cars>
</temp>

预期输出是:

  1. 电影
  2. 汽车

你能帮帮我吗?我希望动态完成另一件事,这意味着从代码中我不想放置元素的名称。这是要做的事情

XDocument xdoc = XDocument.Load("Folder.xml");
var element = xdoc.Root.Elements();
foreach(var a in element)
{
   Console.WriteLine(a.Name);
}

此代码在控制台应用程序中运行,但是当我尝试在 wpf 应用程序中实现此代码以为这些类别创建单选按钮时,此代码在那里什么也没有显示。它显示空白。这就是我遇到问题的原因。

【问题讨论】:

  • 您的代码已经显示了电影和汽车,这是预期的输出。我不太明白你的问题是什么..
  • 重新检查输出,它的工作是否完美。

标签: c# xml wpf linq


【解决方案1】:

如果您确实希望列出所有电影和汽车项目,请使用以下代码:

var xdoc = XDocument.Load("Folder.xml");
if (xdoc.Root != null)
{
    var element = xdoc.Root.Elements();
    foreach (var a in element)
    {
        Console.WriteLine(a.Name);
        foreach (var item in a.Elements())
        {
            Console.WriteLine("\t" + item.Value);
        }
    }
}

输出应该是:

Movies
        Man Of Steel
        Kung Fu Panda
        Thor
Cars
        Racing
        Vintage
        Luxary

【讨论】:

    【解决方案2】:

    你应该试试这个

    foreach(var a in element)
    {
        RadioButton rdb = new RadioButton();
        rdb.content = a.Name.LocalName;
    }
    

    我希望这可能会有所帮助。

    【讨论】:

    • 啊!我在添加 LocalName 时犯了错误。现在它工作正常。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多