Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
XMLの値
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30353#CommentId83365
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2018/9/3 00:35:24
> 解説通りの結果となる事を確認しました。
後半の解説が一部間違っていて申し訳ありません。
いずれにせよ、互いの意図は伝わったようで何よりです。(^^;
VB2010 ではなく、最近の環境であれば、
Dim value1 As String = xmlDoc.SelectSingleNode("/Root/ID/text()")?.Value
Dim value2 As String = xmlDoc.SelectSingleNode("/Root/ID/Name/text()")?.Value
という手も使えたかも知れません…。
> Textノードが列挙されて意味不明でしたが
> これで納得しました。
場合によっては CDATA セクション、コメント、処理命令などの
扱いも考える必要がありますが、今のところは大丈夫そうですね。
> 自分はほとんどLINQ式を使いますが、DOM式にしかできない事、又DOM式がLINQ式
> に比べて優位な部分があるのでしょうか?
XmlDocument は、CLR1 環境でも動作する、という程度の優位点ぐらいしか
思い当たらないですね。
こちらは W3C DOM Level 1 Core および Level 2 Core に準拠した
標準的な API で、古いバージョンの .NET Framework でも動作します。
一方、XDocument は、XLinq すなわち LINQ to XML のために
再設計されたもので、後発だけに使いやすくなっています。
IXmlLineInfo を通じて行番号と行位置を得ることもできますし、
XML 名前空間の扱いについても、こちらの方が扱いやすいかと。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/concepts/linq/linq-to-xml-vs-dom
https://blogs.msdn.microsoft.com/codejunkie/2008/10/08/xmldocument-vs-xelement-performance/
ただし、XPath を使う場合においては、私は DOM 版の実装である
SelectSingleNode / SelectNodes の方が好みです。
XLinq 版も、System.Xml.XPath 名前空間に、
XPathSelectElement(s) / XPathEvaluate の拡張メソッドが
用意されていますが、こちらは若干使いにくく感じています。
というのも、DOM 版の XPath は XmlNode を返すので
"/Root/ID/@id" や "/Root/ID/text()" を指定できるのですが、
XLinq 版の方は XNode ではなく XElement なので、
エラーになってしまうから…。
かといって XPathEvaluate だとレイトバインドになってしまうし。