加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – XPathNodeIterator从迭代数据中访问子节点

发布时间:2020-12-16 00:05:38 所属栏目:百科 来源:网络整理
导读:?xml version="1.0"?-bookstore book titleaaaa/title -author first-namefirts/first-name last-namelast/last-name /author price8.23/price otherbooks book titlebbb/title price18.23/price /book book titleccc/title price11.22/price /book /otherbo
<?xml version="1.0"?>

-<bookstore>            
        <book > 
            <title>aaaa</title> 
            -<author > 
                <first-name>firts</first-name> 
                <last-name>last</last-name> 
            </author> 
            <price>8.23</price> 
            <otherbooks>
                    <book > 
                        <title>bbb</title>      
                        <price>18.23</price> 
                    </book>     
                    <book > 
                        <title>ccc</title>      
                        <price>11.22</price> 
                    </book>     
            </otherbooks>
        </book> 
</bookstore>

我从xml文件中选择了所有书籍.如何使用XPath为每本书选择标题,作者(名字和姓氏)和价格?

xPathDoc = new XPathDocument(filePath);
xPathNavigator = xPathDoc.CreateNavigator();
XPathNodeIterator xPathIterator = xPathNavigator.Select("/bookstore//book");
foreach (XPathNavigator book in xPathIterator)
{
    ??
}

解决方法

使用SelectSingleNode()和Value:

XPathDocument xPathDoc = new XPathDocument(filePath); 
  XPathNavigator xPathNavigator = xPathDoc.CreateNavigator(); 
  XPathNodeIterator xPathIterator = xPathNavigator.Select("/bookstore//book"); 
  foreach (XPathNavigator book in xPathIterator) 
  {
    XPathNavigator nav = book.SelectSingleNode("title");
    string title = nav==null ? string.Empty : nav.Value;
    nav = book.SelectSingleNode("author/first-name");
    string authorFirstName = nav==null ? string.Empty : nav.Value;
    nav = book.SelectSingleNode("author/last-name");
    string authorLastName = nav==null ? string.Empty : nav.Value;
    nav = book.SelectSingleNode("price");
    string price = nav==null ? string.Empty : nav.Value;;
    Console.WriteLine("{0} {1} {2} {3}",title,authorFirstName,authorLastName,price);
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读