[[20210622142001]] 『xmlns属性を持ったXMLのノードの取得に失敗する』(モゲラ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『xmlns属性を持ったXMLのノードの取得に失敗する』(モゲラ)

MSXML2.DOMDocumentを使用して指定の属性のテキスト部を取得しようとしています
しかしxmlns属性を持ったXMLファイルから値が取得できなくて困っています

何か妙案ありませんかね?

Public Function SelectNodes(ByVal xPath As String) As Collection

    Dim DOM As Object
    Set DOM = CreateObject("MSXML2.DOMDocument")
    DOM.setProperty "SelectionLanguage", "XPath"

    DOM.Load "c:\hoge\hoge.xml"

    Dim xNodes As Object: Set xNodes = DOM.SelectNodes(xPath)
    Dim rtn As New Collection
    Dim xNode As Object
    For Each xNode In xNodes
        rtn.Add xNode.text
    Next xNode

    Set SelectNodes = rtn
End Function

Debug.Print SelectNodes("//Map/Device/Bin[@BinCount]").Count

c:\hoge\hoge.xml
<?xml version="1.0"?>
<Map FormatRevision="SEMI G85-0703" WaferID="Hellow World!" xmlns="http">

  <Device Columns="64" Rows="3">
      <ReferenceDevice ReferenceDeviceY="1" ReferenceDeviceX="1"/>
      <Bin BinDescription="Pass" BinCount="0" BinQuality="Pass" BinCode="P"/>
      <Bin BinDescription="Faill" BinCount="0" BinQuality="Faill" BinCode="F"/>
      <Bin BinDescription="Null" BinQuality="Null" BinCode="*"/>
      <Data MapVersion="XXXXXXXXXXXXX" MapName="Excel School">
          <Row><![CDATA[*************************************************************]]></Row>
          <Row><![CDATA[*************************************************************]]></Row>
          <Row><![CDATA[*************************************************************]]></Row>
      </Data>
  </Device>
</Map>

< 使用 Excel:Office365、使用 OS:Windows10 >


コメントが付かないですね。
 
回答ではなく、教えて欲しいのですが、
xmlns="http"
と言う記述がXMLにありますが、これはどういう意味でしょうか。
普通はURLを指定すると思いますが、省略すると何を指定したことになるのですか?
 
そしてそのURLにある規定の中には、
Deviceとか、Binといったタグが定義されているんですか?
また、XML全体のxmlnsはなく、MAPだけでいいんですか?

(γ) 2021/06/23(水) 07:09


まずxmlnsには本来「www.semi.org」こちらのサイトが記載されています(http://をつけます)
このXMLは「SEMI G85-0703」というのに準拠しているらしく先方からxmlnsの内容は指定されています
先のサイトで定義されているかどうか確認はできていないです(しかたがわからない)
ただ指定されている以上変更はできません
(モゲラ) 2021/06/23(水) 08:39

その規約の仕様(Specification)に依存した話のようなので、
こういう場で質問しても回答を得るのは難しいと思われます。
回答者側にそういう情報が無いので。
(γ) 2021/06/23(水) 08:54

そうですか・・・おとなしく配下のノードをループさせて調べます・・・
(モゲラ) 2021/06/23(水) 09:10

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.