fork(1) download
  1. Option Explicit On
  2. Option Strict On
  3. Option Compare Binary
  4. Rem Option Infer Off
  5.  
  6. Imports System
  7. Imports System.Xml
  8.  
  9. Public Class Test
  10. Public Shared Sub Main()
  11. Dim doc As XmlDocument = New XmlDocument()
  12.  
  13. Rem このサイトではファイルを作れないので標準入力から取り込む。
  14. Rem 元のデータにおそらくミスと思われる余分な>がある。xmlの文法的にはテキストデータとして単独で>を書いてもよい。
  15. doc.LoadXml(System.Console.In.ReadToEnd())
  16.  
  17. Dim nsmgr1 As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
  18. nsmgr1.AddNamespace("ns", "http://w...content-available-to-author-only...o.jp/sample/info")
  19.  
  20. Rem 要素のInnerTextを取得したり
  21. Dim writerNode1 As XmlNode = doc.SelectSingleNode("//ns:名前[@prefix='m']", nsmgr1)
  22. System.Console.WriteLine(writerNode1.InnerText)
  23.  
  24. Rem もしくはテキストノードを取得してみたり(これは上のXPathで同時に指定してしまってもよい)
  25. System.Console.WriteLine(writerNode1.SelectSingleNode("text()").Value)
  26.  
  27. Rem あとはChildNodesから、いちいち探すとか。
  28.  
  29.  
  30. Rem 上記の「要素」に更に「子要素」は存在しないからNothingが戻っている。質問文だけならエラーでないはず
  31. Rem これでメソッドやプロパティを呼び出すと・・・例外になるよね。要らないからコメントアウト。
  32. Rem Dim writerNameNode As XmlNode = writerNode1.SelectSingleNode("ns:名前", nsmgr1)
  33.  
  34. Dim n1 As XmlNode = writerNode1.SelectSingleNode("//ns:名前[count(@prefix) = 0]", nsmgr1)
  35. System.Console.WriteLine(n1.NodeType)
  36. DirectCast(n1,XmlElement).SetAttribute("prefix", "abc")
  37.  
  38. Rem 保存するならお好みで。
  39. Rem doc.Save("C:\\abc.xml")
  40.  
  41. System.Console.WriteLine(doc.OuterXml)
  42. End Sub
  43. End Class
Success #stdin #stdout 0.13s 19256KB
stdin
<?xml version='1.0' encoding="UTF-8" ?>
<書籍情報 xmlns="http://w...content-available-to-author-only...o.jp/sample/info">
<著者 id="writer201">
<名前>佐藤晴子</名前>
</著者>
<著者 id="writer302">
<名前 prefix="m">鈴木雨</名前>
</著者>
</書籍情報>
stdout
鈴木雨
鈴木雨
1
<?xml version="1.0" encoding="UTF-8"?><書籍情報 xmlns="http://w...content-available-to-author-only...o.jp/sample/info"><著者 id="writer201"><名前 prefix="abc">佐藤晴子</名前></著者><著者 id="writer302"><名前 prefix="m">鈴木雨</名前></著者></書籍情報>