使用C#获取XML文档的属性值

12 浏览
0 Comments

使用C#获取XML文档的属性值

假设我有以下的XML文档:

这里还有更多的节点

如何获取属性success的值,在这个例子中是字符串"true"。

0
0 Comments

在这个问题中,出现的原因是作者想要从一个XML文档中获取特定属性的值,但是他对如何实现这个目标感到困惑。他试过了几种方法,但都没有成功。然后其他读者提供了一些解决方法,作者也修改了原始帖子以展示这些方法。

解决方法是通过使用C#中的XmlDocument类和DocumentElement属性来加载XML文档并获取属性的值。作者尝试了两种方法,一种是使用属性的名称来获取属性的值,另一种是使用属性的索引来获取属性的值。然而,他发现使用属性的索引并不适用于他的情况,所以他改用了GetNamedItem方法来获取属性的值。

在这个问题中,读者通过提供他们自己的方法来解决作者的问题。这个的问题还涉及了一些关于XML元素属性顺序的讨论,指出了按位置访问属性的不良实践。

通过这个的问题,读者学到了如何使用C#中的XmlDocument类来获取XML文档中属性的值,并且了解了在访问属性时避免使用属性的位置的重要性。

0
0 Comments

问题的原因是需要从一个XML文档中获取属性值,但是不知道正确的方法和技巧。解决方法是使用C#中的不同方法来获取属性值,如XPath、GetAttribute等。同时需要注意的是,要根据属性的名称来获取,而不是位置,因为XML中属性的顺序是不重要的。文章还提到,虽然在C#/.NET中,XmlReader和XmlDocument在文档/输入顺序之外没有其他索引属性的说明,但是也没有任何保证。因此,最好还是根据属性的名称来获取。

0
0 Comments

在上述代码中,我们尝试从一个XML文档中获取一个名为"success"的属性的值。然而,代码存在一些问题,需要解决。

问题的原因是代码中的XElement.Parse()方法的参数不正确。在这个方法中,我们应该传递一个有效的XML字符串作为参数,以便解析和处理。然而,在这个例子中,我们传递了一个错误的字符串"<reply success=\"true\">More nodes go </reply>",这是一个HTML编码的字符串,并不是一个有效的XML字符串。

解决这个问题的方法是将参数改为一个正确的XML字符串。例如,我们可以将上述字符串修改为"More nodes go "。这样一来,代码就能够正确解析XML文档,并获取"success"属性的值。

下面是修改后的代码:

using System;
using System.Linq;
using System.Xml.Linq;
class MyClass
{
    static void Main(string[] args)
    {
        XElement xmlcode =
        XElement.Parse("More nodes go  ");
        var successAttributes =
            from attribute in xmlcode.Attributes()
            where attribute.Name.LocalName=="success" 
            select attribute ;
        if(successAttributes.Count()>0)
        foreach (var sa in successAttributes)
        {
            Console.WriteLine(sa.Value);           
        }
        Console.ReadLine();
    }
}

通过以上修改,我们可以正确地从XML文档中获取"success"属性的值。这个问题的解决方法非常简单,只需要将错误的XML字符串改为正确的格式即可。

0