Re: [問題] XML節點搜尋問題
看板C_Sharp (C#)作者TeemingVoid (TeemingVoid)時間12年前 (2013/07/24 15:38)推噓1(1推 0噓 7→)留言8則, 2人參與討論串2/2 (看更多)
※ 引述《snk521 (哇哈哈)》之銘言:
: 我知道使用SelectSingleNode方法可以找出相對應的節點,可是裡面填入的Xpath
: 的表示方是一直不太清楚,下面是一個小小的例子:
: <Type name="MM">
: <Book name="Ring">
: <Author name="Mary">
: <price>100</price>
: </Author>
: <Author name="Jack">
: <price>200</price>
: </Author>
: </Book>
: <Book name="Road">
: <Author name="John">
: <price>300</price>
: </Author>
: <Author name="Juny">
: <price>400</price>
: </Author>
: </Book>
: </Type>
: 問題1.假設我要找出Book name="Ring"這個節點,Xpath該怎麼寫?
node = objXmlDocument.SelectSingleNode("/Type/Book[@name='Ring']");
1. 中括號內部寫明條件,本例是說 Book 元素有 name 屬性而且屬性值等於 Ring。
2. 要查屬性的話,請加上 @ at符號。
3. 字串值 Ring 用 ' 單引號包夾。
: 問題2.假設我要找出Author name="Mary"這個節點,Xpath又該怎麼寫?
如果按照字面意思:
node = objXmlDocument.SelectSingleNode("/Type/Book/Author[@name='Mary']");
如果要 Author name="Mary" 的那本書:
node = objXmlDocument.SelectSingleNode("/Type/Book[Author[@name='Mary']]");
: 問題3.要是我想找出 <price>100的這個節點,Xpath又該怎麼找?
node = objXmlDocument.SelectSingleNode("/Type/Book/Author[price=400]/price");
或者:
node = objXmlDocument.SelectSingleNode("/Type/Book/Author/price[.=400]");
※ 編輯: TeemingVoid 來自: 111.252.127.171 (07/24 15:59)
→
07/24 16:07, , 1F
07/24 16:07, 1F
→
07/24 16:08, , 2F
07/24 16:08, 2F
→
07/24 16:08, , 3F
07/24 16:08, 3F
→
07/24 16:08, , 4F
07/24 16:08, 4F
推
07/24 20:04, , 5F
07/24 20:04, 5F
→
07/24 23:09, , 6F
07/24 23:09, 6F
→
07/24 23:09, , 7F
07/24 23:09, 7F
→
07/24 23:11, , 8F
07/24 23:11, 8F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
1
7
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章