diff options
-rw-r--r-- | bs4/__init__.py | 10 | ||||
-rw-r--r-- | bs4/builder/_htmlparser.py | 2 | ||||
-rw-r--r-- | bs4/builder/_lxml.py | 2 | ||||
-rw-r--r-- | bs4/element.py | 3 |
4 files changed, 9 insertions, 8 deletions
diff --git a/bs4/__init__.py b/bs4/__init__.py index 647a815..7007796 100644 --- a/bs4/__init__.py +++ b/bs4/__init__.py @@ -193,9 +193,9 @@ class BeautifulSoup(Tag): self.tagStack = [] self.pushTag(self) - def new_tag(self, name, namespace=None, **attrs): + def new_tag(self, name, namespace=None, nsprefix=None, **attrs): """Create a new tag associated with this soup.""" - return Tag(None, self.builder, name, namespace, attrs) + return Tag(None, self.builder, name, namespace, nsprefix, attrs) def new_string(self, s): """Create a new NavigableString associated with this soup.""" @@ -272,7 +272,7 @@ class BeautifulSoup(Tag): mostRecentTag = self.popTag() return mostRecentTag - def handle_starttag(self, name, namespace, attrs): + def handle_starttag(self, name, namespace, nsprefix, attrs): """Push a start tag on to the stack. If this method returns None, the tag was rejected by the @@ -289,8 +289,8 @@ class BeautifulSoup(Tag): or not self.parse_only.search_tag(name, attrs))): return None - tag = Tag(self, self.builder, name, namespace, attrs, self.currentTag, - self.previous_element) + tag = Tag(self, self.builder, name, namespace, nsprefix, attrs, + self.currentTag, self.previous_element) if tag is None: return tag if self.previous_element: diff --git a/bs4/builder/_htmlparser.py b/bs4/builder/_htmlparser.py index 64dfb27..c307ff8 100644 --- a/bs4/builder/_htmlparser.py +++ b/bs4/builder/_htmlparser.py @@ -41,7 +41,7 @@ HTMLPARSER = 'html.parser' class BeautifulSoupHTMLParser(HTMLParser): def handle_starttag(self, name, attrs): # XXX namespace - self.soup.handle_starttag(name, None, dict(attrs)) + self.soup.handle_starttag(name, None, None, dict(attrs)) def handle_endtag(self, name): self.soup.handle_endtag(name) diff --git a/bs4/builder/_lxml.py b/bs4/builder/_lxml.py index 985a030..ad566e6 100644 --- a/bs4/builder/_lxml.py +++ b/bs4/builder/_lxml.py @@ -67,7 +67,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): def start(self, name, attrs): # XXX namespace - self.soup.handle_starttag(name, None, attrs) + self.soup.handle_starttag(name, None, None, attrs) def end(self, name): self.soup.endData() diff --git a/bs4/element.py b/bs4/element.py index 653bb05..73f225e 100644 --- a/bs4/element.py +++ b/bs4/element.py @@ -522,7 +522,7 @@ class Tag(PageElement): """Represents a found HTML tag with its attributes and contents.""" def __init__(self, parser=None, builder=None, name=None, namespace=None, - attrs=None, parent=None, previous=None): + nsprefix=None, attrs=None, parent=None, previous=None): "Basic constructor." if parser is None: @@ -535,6 +535,7 @@ class Tag(PageElement): raise ValueError("No value provided for new tag's name.") self.name = name self.namespace = namespace + self.nsprefix = nsprefix if attrs is None: attrs = {} else: |