将xml转换为sql insert语句

时间:2013-01-10 18:58:45

标签: c++ xml xslt

  

可能重复:
  Are there general guidlines for solving undefined reference/unresolved symbol issues?

我想转换一个xml来插入sql语句。我准备好了xml和xslt文件,我知道转换运行正常(用Oxygen测试)。

现在,我正在使用c ++对此转换进行编码失败。

我试图包含这些库:

#include <libxml2/libxml/xmlversion.h>
#include <libxml2/libxml/parser.h>
#include <libxml2/libxml/valid.h>
#include <libxml2/libxml/xmlschemastypes.h>
#include <libxml2/libxml/xmlschemas.h>
#include <libxml2/libxml/xmlmemory.h>
#include <libxml2/libxml/debugXML.h>
#include <libxml2/libxml/HTMLtree.h>
#include <libxml2/libxml/xmlIO.h>
#include <libxml2/libxml/DOCBparser.h>
#include <libxml2/libxml/xinclude.h>
#include <libxml2/libxml/catalog.h>
#include <xalanc/Include/PlatformDefinitions.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xalanc/XalanTransformer/XalanTransformer.hpp>

但编译器在代码中显示了很多错误,如:

/home/kimpa2007/xml/src/main.cc:108: undefined reference to `xercesc_2_8::XMLUni::fgXercescDefaultLocale'

/home/kimpa2007/xml/src/main.cc:109: undefined reference to `xalanc_1_10::XalanTransformer::initialize(xercesc_2_8::MemoryManager&)'

有人可以解释如何以一种方式编码这种转换吗?

1 个答案:

答案 0 :(得分:2)

有几种方法可以进行XSL转换,请参阅Process an XML document using an XSLT stylesheet micro howto

  • xsltproc的
  • 的Xalan
  • SaxonB
  • Saxon6

我看到你打算使用Xalan。也许这实际上是正确的方式。请注意,需要配置此库。您可以获得有关在Xayno90 post上配置它的帮助。我在这里复制粘贴步骤:

  

我终于设法编译并安装了Xerces和Xalan   Ubuntu 10.04,执行如下操作:

第1步

sudo apt-get source libxerces-c28
sudo apt-get source libxalan110

第2步。

add "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" to /etc/ld.so.conf

第3步。

you may need to change owner of source packages from root to normal user

第4步。构建Xerces

export XERCESCROOT=/home/user/xerces-c2-2.8.0+deb1
cd $XERCESCROOT
cd src/xercesc
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -rpthread -b64 -P /usr/local
make
sudo XERCESCROOT=$XERCESCROOT make install

步骤5.构建Xalan

export XERCESCROOT=/usr/local
cd $XERCESCROOT
/usr/local$ cd ~
export XERCESCROOT=/home/user/xerces-c2-2.8.0+deb1
cd $XERCESCROOT
cd ~
export XALANCROOT=/home/user/xalan-1.10/c
cd $XALANCROOT
./runConfigure -p linux -c gcc -x g++ -b64 -P /usr/local
make
sudo XALANCROOT=$XALANCROOT make install

第6步。

检查/ usr / local / lib和/ usr / local / include的目录以确认两者都安装了Xerces和Xalan

需要成为这些XML库和软件包的Ubuntu特定安装的wiki,因为目前还没有明确的指南以及其他操作系统的安装方法,因此必须对其进行解释以适应此安装。

此外:

最后,请阅读此SO帖子: