Implementing createElementNS().

This commit is contained in:
jst%netscape.com 2000-05-14 23:55:04 +00:00
parent f247d4fe53
commit 63e304e863
2 changed files with 56 additions and 4 deletions

View File

@ -772,8 +772,34 @@ nsXMLDocument::CreateElementNS(const nsString& aNamespaceURI,
const nsString& aQualifiedName,
nsIDOMElement** aReturn)
{
NS_NOTYETIMPLEMENTED("write me");
return NS_ERROR_NOT_IMPLEMENTED;
nsresult rv = NS_OK;
nsCOMPtr<nsINodeInfo> nodeInfo;
rv = mNodeInfoManager->GetNodeInfo(aQualifiedName, aNamespaceURI,
*getter_AddRefs(nodeInfo));
NS_ENSURE_SUCCESS(rv, rv);
PRInt32 namespaceID;
nodeInfo->GetNamespaceID(namespaceID);
nsIContent* content;
if (namespaceID == kNameSpaceID_HTML) {
nsIHTMLContent* htmlContent;
rv = NS_CreateHTMLElement(&htmlContent, nodeInfo);
content = (nsIContent*)htmlContent;
}
else {
nsIXMLContent* xmlContent;
rv = NS_NewXMLElement(&xmlContent, nodeInfo);
content = NS_STATIC_CAST(nsIXMLContent *, xmlContent);
}
NS_ENSURE_SUCCESS(rv, rv);
content->SetContentID(mNextContentID++);
return content->QueryInterface(kIDOMElementIID, (void**)aReturn);
}
NS_IMETHODIMP

View File

@ -772,8 +772,34 @@ nsXMLDocument::CreateElementNS(const nsString& aNamespaceURI,
const nsString& aQualifiedName,
nsIDOMElement** aReturn)
{
NS_NOTYETIMPLEMENTED("write me");
return NS_ERROR_NOT_IMPLEMENTED;
nsresult rv = NS_OK;
nsCOMPtr<nsINodeInfo> nodeInfo;
rv = mNodeInfoManager->GetNodeInfo(aQualifiedName, aNamespaceURI,
*getter_AddRefs(nodeInfo));
NS_ENSURE_SUCCESS(rv, rv);
PRInt32 namespaceID;
nodeInfo->GetNamespaceID(namespaceID);
nsIContent* content;
if (namespaceID == kNameSpaceID_HTML) {
nsIHTMLContent* htmlContent;
rv = NS_CreateHTMLElement(&htmlContent, nodeInfo);
content = (nsIContent*)htmlContent;
}
else {
nsIXMLContent* xmlContent;
rv = NS_NewXMLElement(&xmlContent, nodeInfo);
content = NS_STATIC_CAST(nsIXMLContent *, xmlContent);
}
NS_ENSURE_SUCCESS(rv, rv);
content->SetContentID(mNextContentID++);
return content->QueryInterface(kIDOMElementIID, (void**)aReturn);
}
NS_IMETHODIMP