class_docstr: Initializer for XBNReader class.
  
  Parameters
  ----------
  path: str or file
      Path of the file containing XBN data.
  
  string: str
      String of XBN data
  
  Examples
  --------
  >>> reader = XBNReader('test_XBN.xml')
  
  Reference
  ---------
  [1] Microsoft Research. XML belief network file format.
      http://xml.coverpages.org/xbn-MSdefault19990414.html, 1999.
class_docstr_tok: ["Initializer","for","XBNReader","class",".","Parameters","--","--","--","--","--","path",":","str","or","file","Path","of","the","file","containing","XBN","data",".","string",":","str","String","of","XBN","data","Examples","--","--","--","--",">",">",">","reader","=","XBNReader","(","'test_XBN.xml","'",")","Reference","--","--","--","--","-","[","1","]","Microsoft","Research",".","XML","belief","network","file","format",".","http",":","\/\/xml.coverpages.org\/xbn-MSdefault19990414.html",",","1999","."]
code: def __init__(self, path=None, string=None):
      if path:
          self.network = etree.parse(path).getroot()
      elif string:
          self.network = etree.fromstring(string)
      else:
          raise ValueError("Must specify either path or string")
  
      self.bnmodel = self.network.find("BNMODEL")
      self.analysisnotebook = self.get_analysisnotebook_values()
      self.model_name = self.get_bnmodel_name()
      self.static_properties = self.get_static_properties()
      self.variables = self.get_variables()
      self.edges = self.get_edges()
      self.variable_CPD = self.get_distributions()
  
imports: import itertools
  import xml.etree.ElementTree
  import networkx
  import numpy
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.models import BayesianNetwork
label_desc: Use image node_id 1 to create a new XBNReader object from inherited base classes: object with example: obj = XBNReader(path, string)