v = aNode.GetValueAt(i); nsRDFParserUtils::StripAndConvert(v);
nsAutoString valueStr(aNode.GetValueAt(i)); nsRDFParserUtils::StripAndConvert(valueStr);
XULContentSinkImpl::AddAttributes(const nsIParserNode& aNode,                                  nsIRDFResource* aSubject){    // Add tag attributes to the content attributes    nsAutoString k, v;    nsAutoString attr;    PRInt32 nameSpaceID;    PRInt32 ac = aNode.GetAttributeCount();    for (PRInt32 i = 0; i < ac; i++) {        // Get upper-cased key        const nsString& key = aNode.GetKeyAt(i);        attr = key;        nsIAtom* prefix = CutNameSpacePrefix(attr);        if (prefix != nsnull)        {            SplitQualifiedName(key, nameSpaceID, attr);            NS_RELEASE(prefix);        }        else            nameSpaceID = kNameSpaceID_None; // Unqualified attributes have a namespace of none (always)        // Don't add xmlns: declarations, these are really just        // processing instructions.        if (nameSpaceID == kNameSpaceID_XMLNS)            continue;        // skip xul:id (and potentially others in the future). These        // are all "special" and should've been dealt with by the        // caller.        if ((nameSpaceID == kNameSpaceID_None) &&            (attr == kXULID))            continue;        v = aNode.GetValueAt(i);        nsRDFParserUtils::StripAndConvert(v);        //if (nameSpaceID == kNameSpaceID_HTML)        //    attr.ToLowerCase(); // Not our problem. You'd better be lowercase.        // Get the URI for the namespace, so we can construct a        // fully-qualified property name.        mNameSpaceManager->GetNameSpaceURI(nameSpaceID, k);        // Insert a '#' if the namespace doesn't end with one, or the        // attribute doesn't start with one.        if (! ((attr.First() == '#') &&               (k.Last() == '#' || k.Last() == '/'))) {            k.Append('#');        }        k.Append(attr);        // Add the attribute to RDF        rdf_Assert(mDataSource, aSubject, k, v);    }    return NS_OK;}