summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bs4/__init__.py10
-rw-r--r--bs4/builder/_htmlparser.py2
-rw-r--r--bs4/builder/_lxml.py2
-rw-r--r--bs4/element.py3
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: