亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Xml 節點的 Xml 后代

Xml 節點的 Xml 后代

C#
慕絲7291255 2021-06-10 14:21:13
這是一個簡化的 mxl 結構“xml”,<store><book_1>   <author_1><name>Alice</name><age>30</age></author_1>   <author_2><name>Bob</name><age>31</age></author_2><book_1>   <author_1><name>Charley</name><age>29</age></author_1>   <author_2><name>Dory</name><age>25</age></author_2> <book_1>    </store>這是我嘗試過的; XmlDocument submission = new XmlDocument();   submission.LoadXml(xml);    var bookNodes = submission.SelectNodes("//*[starts-with(local-name(),'book_')]");這給了我一個書單。 foreach (XmlNode book in bookNodes)  {    //I want to do something like to find book authors for the book in context e.g. for the first book I just want nodes for Alice and Bob.   // var bookAuthors = book.SelectNodes("decendants::[starts-with(local-name(),'author_')");   }我怎么能做一個開始來檢查下流元素?編輯:似乎是一個錯字......var bookAuthors = book.SelectNodes("后代::*[starts-with(local-name(),'MeritCriterion_') ] ");
查看完整描述

1 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您可以使用以下 XPath 語法訪問您的后代節點:


XmlDocument submission = new XmlDocument();

submission.LoadXml(xml);


var bookNodes = submission.SelectNodes("//*[starts-with(local-name(),'book_')]");


foreach (XmlNode book in bookNodes)

{

    var author = book.SelectNodes("descendant::*[starts-with(local-name(),'author_')]");


    foreach (XmlNode authorInfo in author)

    {

        Console.WriteLine(authorInfo .InnerText);

    }

}

簡而言之,您需要訪問descendant::(all)[starts-with],否則您只是想訪問 XPath 中的任何后代。:)


查看完整回答
反對 回復 2021-06-20
  • 1 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號