我正在使用Xerces 2.7和Xalan 1.10在旧的Linux服务器上工作,我试图弄清楚如何获得XalanDocument的Xml表示形式。
我已经看了一些示例,但是它们都将输出转储到stdout(虽然我可以将一个内存包装封装在一起以捕获它,但这似乎没有必要)。这些示例还显示了使用样式表的API,但并非在所有情况下都使用该样式表。
注意:升级到最新的Xerces是不可行的,因为我必须与另一个基于2.7的产品共存,而且我还限于gcc 4.1.2。
这是我的类构造函数,它接收初始xml(可以通过添加/删除节点进行修改):
myXalanDoc::myXalanDoc(const string &xmlString): parserLiaison(domSupport)
{
using xercesc::MemBufInputSource;
using xalanc::XalanDOMString;
domSupport.setParserLiaison(&parserLiaison);
MemBufInputSource theInputSource(
(const XMLByte *)xmlString.c_str(),
xmlString.size(),
"myXalanDoc"
);
xalanDoc = parserLiaison.parseXMLStream(theInputSource);
}
我基本上想做类似的事情:
char * myXalanDoc::getXML()
{
xalanDoc->some_method_returning_a_string().c_str();
}
或类似的内容。字符串结果也可以。