Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用xml读取器获取innerXML属性值_C#_Xml_Xmlreader - Fatal编程技术网

C# 如何使用xml读取器获取innerXML属性值

C# 如何使用xml读取器获取innerXML属性值,c#,xml,xmlreader,C#,Xml,Xmlreader,我有一个类似的例子 如何检索具有给定ISBN的图书的“价格”和“标题”值?以下是一个示例: class Program { static void Main() { var xml = @" <bookstore> <book genre='novel' ISBN='10-861003-324'> <title>The Handmaid's Tale&l

我有一个类似的例子

如何检索具有给定ISBN的图书的“价格”和“标题”值?

以下是一个示例:

class Program
{
    static void Main()
    {
        var xml =
        @"
        <bookstore>
          <book genre='novel' ISBN='10-861003-324'>
            <title>The Handmaid's Tale</title>
            <price>19.95</price>
          </book>
          <book genre='novel' ISBN='1-861001-57-5'>
            <title>Pride And Prejudice</title>
            <price>24.95</price>
          </book>
        </bookstore>
        ";
        using (var reader = new StringReader(xml))
        using (var xmlReader = XmlReader.Create(reader))
        {
            var bookFound = false;
            while (xmlReader.Read())
            {
                if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "book")
                {
                    var isbn = xmlReader.GetAttribute("ISBN");
                    bookFound = isbn == "1-861001-57-5";
                }

                if (bookFound && xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "title")
                {
                    Console.WriteLine("title: {0}", xmlReader.ReadElementContentAsString());
                }
                if (bookFound && xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "price")
                {
                    Console.WriteLine("price: {0}", xmlReader.ReadElementContentAsString());
                }
            }
        }
    }
}
下面是一个例子:

class Program
{
    static void Main()
    {
        var xml =
        @"
        <bookstore>
          <book genre='novel' ISBN='10-861003-324'>
            <title>The Handmaid's Tale</title>
            <price>19.95</price>
          </book>
          <book genre='novel' ISBN='1-861001-57-5'>
            <title>Pride And Prejudice</title>
            <price>24.95</price>
          </book>
        </bookstore>
        ";
        using (var reader = new StringReader(xml))
        using (var xmlReader = XmlReader.Create(reader))
        {
            var bookFound = false;
            while (xmlReader.Read())
            {
                if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "book")
                {
                    var isbn = xmlReader.GetAttribute("ISBN");
                    bookFound = isbn == "1-861001-57-5";
                }

                if (bookFound && xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "title")
                {
                    Console.WriteLine("title: {0}", xmlReader.ReadElementContentAsString());
                }
                if (bookFound && xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "price")
                {
                    Console.WriteLine("price: {0}", xmlReader.ReadElementContentAsString());
                }
            }
        }
    }
}

那么,价格和书名不是图书元素的属性吗?那么我怎样才能得到一个特定元素的价格和名称呢?@Relativity,你所说的
一个特定元素
是什么意思?就像给定ISBN的书的价格和书名一样?是的,我们如何获得具有特定ISBN的书的价格和书名?@相对论,我用一个例子更新了我的答案,说明了如何使用XmlReader实现这一点。下一次当你问问题时,请确保你提供了更多关于你所问问题和试图实现目标的细节。谢谢。那么…价格和书名不是书的属性,对吗?那么,价格和书名不是书元素的属性?那么我怎样才能得到一个特定元素的价格和名称呢?@Relativity,你所说的
一个特定元素
是什么意思?就像给定ISBN的书的价格和书名一样?是的,我们如何获得具有特定ISBN的书的价格和书名?@相对论,我用一个例子更新了我的答案,说明了如何使用XmlReader实现这一点。下一次当你问问题时,请确保你提供了更多关于你所问问题和试图实现目标的细节。谢谢。所以…价格和标题不是书的属性,对吗?为什么你们投票关闭?…我从早上开始就尝试了…添加更多细节,并包含已经尝试过的代码总是一个好主意。为什么你们投票关闭?…我从早上开始尝试…添加更多细节总是一个好主意,并包含已经尝试过的代码。