XmlDocument Class¶
A class to store an XML Sitemap (index, sub-sitemaps, or main-sitemap) Document.
This class contains several function methods to handle XML Sitemaps. It includes convenient functions e.g. add_url and add_url_set.
Source code in pysitemaps/__init__.py
          class XmlDocument:
    """
    A class to store an XML Sitemap (index, sub-sitemaps, or main-sitemap) Document.
    This class contains several function methods to handle XML Sitemaps.
    It includes convenient functions e.g. add_url and add_url_set.
    """
    def __init__(
        self,
        loc: str,
        lastmod: str = datetime.now().strftime("%Y-%m-%d"),
        include_urls: bool = False,
    ) -> None:
        """Initialize XmlDocument
        Args:
            loc (str): loc of XmlDocument
            lastmod (str, optional): lastmod of XmlDocument. Defaults to datetime.now().strftime("%Y-%m-%d").
            include_urls (bool, optional): If true then XmlDocument will also include (aviaalble) Urls otherwise ignored. Defaults to False.
        """
        self.loc = loc
        self.lastmod = lastmod
        self.urls = []
        if include_urls:
            file_url = get_corrected_url(loc, fix_slash="")
            response = get_remote_content(file_url)
            if response.status_code == 200:
                self.add_from_text(response.text)
    def add_object(self, url_object: Url):
        """add Url Object to current XmlDocument
        Args:
            url_object (Url): Url Object.
        """
        if url_object:
            self.urls.append(url_object)
    def add_url(
        self,
        loc: str,
        lastmod: str = datetime.now().strftime("%Y-%m-%d"),
        images_loc: list = [],
    ) -> None:
        """add url to current sitemap by specifiyig loc, lastmod and list of images.
        Args:
            loc (str): _description_
            lastmod (str, optional): _description_. Defaults to datetime.now().strftime("%Y-%m-%d").
            images_loc (list, optional): _description_. Defaults to [].
        """
        if loc:
            self.urls.append(Url(loc=loc, lastmod=lastmod, images_loc=images_loc))
    def add_from_text(self, xml_as_text: str) -> None:
        """ """
        self.urls += extract_url_set(xml_as_text=xml_as_text)
    def as_dict(self) -> dict:
        """return XmlDocument as dit
        Returns:
            dict: contains loc, lastmod of XML Document. It also include urls key containing list of Url(s).
        """
        return {
            "loc": self.loc,
            "lastmod": self.lastmod,
            "urls": [url.as_dict() for url in self.urls],
        }
        
__init__(loc, lastmod=datetime.now().strftime('%Y-%m-%d'), include_urls=False)
¶
  Initialize XmlDocument
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
loc | 
          
                str
           | 
          loc of XmlDocument  | 
          required | 
lastmod | 
          
                str
           | 
          lastmod of XmlDocument. Defaults to datetime.now().strftime(“%Y-%m-%d”).  | 
          
                datetime.now().strftime('%Y-%m-%d')
           | 
        
include_urls | 
          
                bool
           | 
          If true then XmlDocument will also include (aviaalble) Urls otherwise ignored. Defaults to False.  | 
          
                False
           | 
        
Source code in pysitemaps/__init__.py
        def __init__(
    self,
    loc: str,
    lastmod: str = datetime.now().strftime("%Y-%m-%d"),
    include_urls: bool = False,
) -> None:
    """Initialize XmlDocument
    Args:
        loc (str): loc of XmlDocument
        lastmod (str, optional): lastmod of XmlDocument. Defaults to datetime.now().strftime("%Y-%m-%d").
        include_urls (bool, optional): If true then XmlDocument will also include (aviaalble) Urls otherwise ignored. Defaults to False.
    """
    self.loc = loc
    self.lastmod = lastmod
    self.urls = []
    if include_urls:
        file_url = get_corrected_url(loc, fix_slash="")
        response = get_remote_content(file_url)
        if response.status_code == 200:
            self.add_from_text(response.text)
      
add_object(url_object)
¶
  add Url Object to current XmlDocument
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
url_object | 
          
                Url
           | 
          Url Object.  | 
          required | 
Source code in pysitemaps/__init__.py
        def add_object(self, url_object: Url):
    """add Url Object to current XmlDocument
    Args:
        url_object (Url): Url Object.
    """
    if url_object:
        self.urls.append(url_object)
      
add_url(loc, lastmod=datetime.now().strftime('%Y-%m-%d'), images_loc=[])
¶
  add url to current sitemap by specifiyig loc, lastmod and list of images.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
loc | 
          
                str
           | 
          description  | 
          required | 
lastmod | 
          
                str
           | 
          description. Defaults to datetime.now().strftime(“%Y-%m-%d”).  | 
          
                datetime.now().strftime('%Y-%m-%d')
           | 
        
images_loc | 
          
                list
           | 
          description. Defaults to [].  | 
          
                []
           | 
        
Source code in pysitemaps/__init__.py
        def add_url(
    self,
    loc: str,
    lastmod: str = datetime.now().strftime("%Y-%m-%d"),
    images_loc: list = [],
) -> None:
    """add url to current sitemap by specifiyig loc, lastmod and list of images.
    Args:
        loc (str): _description_
        lastmod (str, optional): _description_. Defaults to datetime.now().strftime("%Y-%m-%d").
        images_loc (list, optional): _description_. Defaults to [].
    """
    if loc:
        self.urls.append(Url(loc=loc, lastmod=lastmod, images_loc=images_loc))
      
as_dict()
¶
  return XmlDocument as dit
Returns:
| Name | Type | Description | 
|---|---|---|
dict |           
                dict
           | 
          contains loc, lastmod of XML Document. It also include urls key containing list of Url(s).  | 
        
Source code in pysitemaps/__init__.py
        def as_dict(self) -> dict:
    """return XmlDocument as dit
    Returns:
        dict: contains loc, lastmod of XML Document. It also include urls key containing list of Url(s).
    """
    return {
        "loc": self.loc,
        "lastmod": self.lastmod,
        "urls": [url.as_dict() for url in self.urls],
    }