/* {{{ proto void DOMAttr::__construct(string name, [string value]) */ PHP_METHOD(domattr, __construct) { zval *id = getThis(); xmlAttrPtr nodep = NULL; xmlNodePtr oldnode = NULL; dom_object *intern; char *name, *value = NULL; size_t name_len, value_len, name_valid; if (zend_parse_parameters_throw(ZEND_NUM_ARGS(), "s|s", &name, &name_len, &value, &value_len) == FAILURE) { return; } intern = Z_DOMOBJ_P(id); name_valid = xmlValidateName((xmlChar *) name, 0); if (name_valid != 0) { php_dom_throw_error(INVALID_CHARACTER_ERR, 1); RETURN_FALSE; } nodep = xmlNewProp(NULL, (xmlChar *) name, (xmlChar *) value); if (!nodep) { php_dom_throw_error(INVALID_STATE_ERR, 1); RETURN_FALSE; } oldnode = dom_object_get_node(intern); if (oldnode != NULL) { php_libxml_node_free_resource(oldnode ); } php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)nodep, (void *)intern); }
bool c_XMLWriter::t_writeelementns(CStrRef prefix, CStrRef name, CStrRef uri, CStrRef content /* = null_string */) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::writeelementns); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { if (content.isNull()) { ret = xmlTextWriterStartElementNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data()); if (ret == -1) return false; ret = xmlTextWriterEndElement(m_ptr); if (ret == -1) return false; } else { ret = xmlTextWriterWriteElementNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data(), (xmlChar*)content.data()); } } return ret != -1; }
/* {{{ proto void DOMEntityReference::__construct(string name); */ PHP_METHOD(domentityreference, __construct) { zval *id = getThis(); xmlNode *node; xmlNodePtr oldnode = NULL; dom_object *intern; char *name; size_t name_len, name_valid; if (zend_parse_parameters_throw(ZEND_NUM_ARGS(), "s", &name, &name_len) == FAILURE) { return; } name_valid = xmlValidateName((xmlChar *) name, 0); if (name_valid != 0) { php_dom_throw_error(INVALID_CHARACTER_ERR, 1); RETURN_FALSE; } node = xmlNewReference(NULL, (xmlChar *) name); if (!node) { php_dom_throw_error(INVALID_STATE_ERR, 1); RETURN_FALSE; } intern = Z_DOMOBJ_P(id); if (intern != NULL) { oldnode = dom_object_get_node(intern); if (oldnode != NULL) { php_libxml_node_free_resource(oldnode ); } php_libxml_increment_node_ptr((php_libxml_node_object *)intern, node, (void *)intern); } }
void slaxJsonElementOpen (slax_data_t *sdp, const char *name) { int valid = xmlValidateName((const xmlChar *) name, FALSE); const char *element = valid ? ELT_ELEMENT : name; slaxElementOpen(sdp, element); if (element != name) slaxAttribAddLiteral(sdp, ATT_NAME, name); }
bool c_XMLWriter::t_startpi(const String& target) { if (xmlValidateName((xmlChar*)target.data(), 0)) { raise_warning("invalid PI target: %s", target.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartPI(m_ptr, (xmlChar*)target.data()); } return ret != -1; }
bool c_xmlwriter::t_startattribute(CStrRef name) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartAttribute(m_ptr, (xmlChar*)name.data()); } return ret != -1; }
bool c_XMLWriter::t_startelement(CStrRef name) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartElement(m_ptr, (xmlChar*)name.data()); } return ret != -1; }
bool c_XMLWriter::t_startdtdentity(const String& name, bool isparam) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartDTDEntity(m_ptr, isparam, (xmlChar*)name.data()); } return ret != -1; }
bool c_xmlwriter::t_startdtdelement(CStrRef qualifiedname) { if (xmlValidateName((xmlChar*)qualifiedname.data(), 0)) { raise_warning("invalid element name: %s", qualifiedname.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartDTDElement(m_ptr, (xmlChar*)qualifiedname.data()); } return ret != -1; }
bool c_XMLWriter::t_startdtdattlist(const String& name) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartDTDAttlist(m_ptr, (xmlChar*)name.data()); } return ret != -1; }
bool c_XMLWriter::t_startdtdentity(CStrRef name, bool isparam) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::startdtdentity); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartDTDEntity(m_ptr, isparam, (xmlChar*)name.data()); } return ret != -1; }
bool c_XMLWriter::t_startdtdattlist(CStrRef name) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::startdtdattlist); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartDTDAttlist(m_ptr, (xmlChar*)name.data()); } return ret != -1; }
bool c_XMLWriter::t_startpi(CStrRef target) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::startpi); if (xmlValidateName((xmlChar*)target.data(), 0)) { raise_warning("invalid PI target: %s", target.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartPI(m_ptr, (xmlChar*)target.data()); } return ret != -1; }
bool c_XMLWriter::t_writeattribute(const String& name, const String& value) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteAttribute(m_ptr, (xmlChar*)name.data(), (xmlChar*)value.data()); } return ret != -1; }
bool c_xmlwriter::t_writedtdattlist(CStrRef name, CStrRef content) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteDTDAttlist(m_ptr, (xmlChar*)name.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writedtdelement(const String& name, const String& content) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteDTDElement(m_ptr, (xmlChar*)name.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_xmlwriter::t_writepi(CStrRef target, CStrRef content) { if (xmlValidateName((xmlChar*)target.data(), 0)) { raise_warning("invalid PI target: %s", target.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWritePI(m_ptr, (xmlChar*)target.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_startelementns(const String& prefix, const String& name, const String& uri) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartElementNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data()); } return ret != -1; }
bool c_XMLWriter::t_writeattribute(CStrRef name, CStrRef value) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::writeattribute); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteAttribute(m_ptr, (xmlChar*)name.data(), (xmlChar*)value.data()); } return ret != -1; }
bool c_XMLWriter::t_writedtdelement(CStrRef name, CStrRef content) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::writedtdelement); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteDTDElement(m_ptr, (xmlChar*)name.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_startelementns(CStrRef prefix, CStrRef name, CStrRef uri) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::startelementns); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartElementNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data()); } return ret != -1; }
bool c_XMLWriter::t_startattributens(CStrRef prefix, CStrRef name, CStrRef uri) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterStartAttributeNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data()); } return ret != -1; }
bool c_xmlwriter::t_writeattributens(CStrRef prefix, CStrRef name, CStrRef uri, CStrRef content) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteAttributeNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writeattributens(const String& prefix, const String& name, const String& uri, const String& content) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteAttributeNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writeattributens(CStrRef prefix, CStrRef name, CStrRef uri, CStrRef content) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::writeattributens); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid attribute name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteAttributeNS(m_ptr, (xmlChar*)prefix.data(), (xmlChar*)name.data(), (xmlChar*)uri.data(), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writedtdentity(const String& name, const String& content, bool pe /* = false */, const String& publicid /* = null_string */, const String& systemid /* = null_string */, const String& ndataid /* = null_string */) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteDTDEntity(m_ptr, pe, (xmlChar*)name.data(), xmls(publicid), xmls(systemid), xmls(ndataid), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writedtdentity(CStrRef name, CStrRef content, bool pe /* = false */, CStrRef publicid /* = null_string */, CStrRef systemid /* = null_string */, CStrRef ndataid /* = null_string */) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::writedtdentity); if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteDTDEntity(m_ptr, pe, (xmlChar*)name.data(), xmls(publicid), xmls(systemid), xmls(ndataid), (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_startelementns(const CVarRef prefix, const String& name, const String& uri) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { // To be consistent with Zend PHP, we need to make a distinction between // null strings and empty strings for the prefix. We use CVarRef above // because null strings are coerced to empty strings automatically. xmlChar * prefixData = prefix.isNull() ? nullptr : (xmlChar *)prefix.toString().data(); ret = xmlTextWriterStartElementNS(m_ptr, prefixData, (xmlChar*)name.data(), (xmlChar*)uri.data()); } return ret != -1; }
// NodeList getElementsByTagName(in DOMString name); // '*' means all tags static void _getElementsByTagName(Request& r, MethodParams& params) { xmlChar* tagName=as_xmlchar(r, params, 0, XML_LOCAL_NAME_MUST_BE_STRING); if(xmlValidateName(tagName, 0) != 0 && strcmp((const char*)tagName, "*") != 0) throw XmlException(0, XML_INVALID_LOCAL_NAME, tagName); VXnode& vnode=GET_SELF(r, VXnode); VXdoc& vxdoc=vnode.get_vxdoc(); xmlNode& xmlnode=vnode.get_xmlnode(); VHash& result=*new VHash; AccumulateFoundInfo info={&result.hash(), &vxdoc, 0}; pa_xmlNamedPreorderTraversal(&xmlnode, 0, tagName, AccumulateFound, &info); // write out result r.write_no_lang(result); }
bool c_XMLWriter::t_writeelement(const String& name, const String& content /* = null_string */) { if (xmlValidateName((xmlChar*)name.data(), 0)) { raise_warning("invalid element name: %s", name.data()); return false; } int ret = -1; if (m_ptr) { if (content.isNull()) { ret = xmlTextWriterStartElement(m_ptr, (xmlChar*)name.data()); if (ret == -1) return false; ret = xmlTextWriterEndElement(m_ptr); if (ret == -1) return false; } else { ret = xmlTextWriterWriteElement(m_ptr, (xmlChar*)name.data(), (xmlChar*)content.data()); } } return ret != -1; }