Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
XMLの値
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30353#CommentId83367
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
mayopee
 (社会人)
投稿日時
2018/9/3 14:52:48
魔界の仮面弁士様、返信ありがとうございます。
XmlDocument版
>Dim value2 As String = xmlDoc.SelectSingleNode("/Root/ID/Name/text()")?.Value
XDocument版
>Dim value2 As String = Doc.CreateNavigator().SelectSingleNode("/Root/ID/Name/text()")?.Value
XPath式でTextノードを得るには、こんな書き方もできるのですね。
勉強になります。VB2010ですので、ご指摘通り「?.」の部分でコンパイラに怒られましたが
「?.」を消去すればTextノードがNothingでない要素については希望する結果を得られました。
NULL条件演算子( ?. )、とても便利そうですね!
>場合によっては CDATA セクション、コメント、処理命令などの
コメント以外、使った事も見た事もありません。CDATA セクションについては、Webで検索して
自分でXMLを作成する場合でも使えそうだと思いました。めったと、禁止文字を使う事はないけど
エスケープ文字はなんだっけ?となるよりいいかなという感想です。
DOM式とLINQ式についても、ご意見を頂き、ありがとうございます。
自分の場合、LINQ式を使う理由としてはXMLを読み込んで要素を編集、抽出する場合にLINQが
使えるXDocument/XElementの方が圧倒的に使い勝手が良い、コードも簡潔になって見通しが良い
という理由からです。
でも、今回ご指摘いただいたOfTypeやCastを使えばDOM式でもSelectやWhereが使えるのですね。
話題がちょっと脱線しましたが、当初の疑問は解決しましたので、これで解決とさせていだだきます。
私の発言に反応があるかもしれないので、解決マークはしばらく未チェックにしておきます。