示例#1
0
const XMLCh*     DOMNodeImpl::getTextContent() const
{
	unsigned int nBufferLength = 0;

	getTextContent(NULL, nBufferLength);
	XMLCh* pzBuffer = (XMLCh*)((DOMDocumentImpl*)getOwnerDocument())->allocate((nBufferLength+1) * sizeof(XMLCh));
	getTextContent(pzBuffer, nBufferLength);
	pzBuffer[nBufferLength] = 0;

	return pzBuffer;

}
示例#2
0
  void DOMElement::dumpInfo(FILE * f, int recursion)
  {
    NodeList nodes = getChildNodes();

    addSpace(f, recursion);
    fprintf(f, "NODE <%s> (%d children, %d deep)",
	    getTagName().c_str(), (int) nodes.size(), recursion);

    std::string str = getTextContent();
    if(str.size() > 0 && str.size() < 100) {
      fprintf(f, " TEXT = \"%s\"", str.c_str());
    }

    fprintf(f, "\n");

    int i = 1;

    fflush(f);

    for(NodeList::iterator it = nodes.begin(); it != nodes.end(); it++) {
      addSpace(f, recursion);
      fprintf(f, "Child %d/%d\n", i, (int) nodes.size());
      (*it).dumpInfo(f, recursion + 1);
      i++;
    }
  }
示例#3
0
result_t XmlElement::get_textContent(exlib::string& retVal)
{
    StringBuffer strs;
    getTextContent(strs);
    retVal = strs.str();

    return 0;
}
示例#4
0
static void readSettings(const string& id, DOMElement* element,
		FreeAX25::Runtime::UniquePointerDict<FreeAX25::Runtime::Setting>& settings)
{
	if (element == nullptr) return;
	auto nodeList = element->getElementsByTagName(toX("Setting"));
	for (uint32_t i = 0; i < nodeList->getLength(); ++i) {
		auto settingElement = static_cast<DOMElement*>(nodeList->item(i));
		string name  = fmX(settingElement->getAttribute(toX("name")));
		string value = fmX(settingElement->getTextContent());
		FreeAX25::Runtime::env().logDebug(
				"Setting " + id + "/" + name + " = \"" + value + "\"");
		settings.insertNew(name, new FreeAX25::Runtime::Setting(name, value));
	} // end for //
}
示例#5
0
result_t XmlElement::get_textContent(std::string &retVal)
{
    std::vector<std::string> strs;

    getTextContent(strs);

    int32_t sz = (int32_t)strs.size();
    int32_t len = 0, pos = 0;
    int32_t i;

    for (i = 0; i < sz; i ++)
        len += (int32_t)strs[i].length();

    retVal.resize(len);
    for (i = 0; i < sz; i ++)
    {
        int32_t l = (int32_t)strs[i].length();
        memcpy(&retVal[pos], strs[i].c_str(), l);
        pos += l;
    }

    return 0;
}