我应该用XPath还是只用DOM?
我在XML文件中存储了一堆层次数据.我使用tinyxml将其包装在手工制作的课程后面.给定一个XML片段,将源签名描述为一组(频率,级别)对: 1000100 1200110 我正在与此提取对: std::vector > signature() const { std::vector > sig; for (const TiXmlElement* sig_el = node()->FirstChildElement ("sig"); sig_el; sig_el = sig_el->NextSiblingElement("
4 2023-12-23
编程技术问答社区
使用TinyXML解析XML元素
更新:仍然不起作用:(我已经更新了代码部分以反映我当前的内容. 对于使用Tinyxml的人来说,这应该是一个非常简单的问题.我试图使用tinyxml通过XML文档解析并撤出一些值.我昨天弄清楚了如何在图书馆中添加,我已经成功加载了文档(嘿,这是一个开始). 我一直在阅读手册,我无法完全弄清楚如何拔出单个属性.谷歌搜索后,我还没有找到我的特定示例的示例,所以也许这里使用Tinyxml的人可以提供帮助.下面是XML的一片,我已经开始解析它. xml: [ ... ] [ ... ] 加载/解
2 2023-12-23
编程技术问答社区
通过TinyXML深度复制一个XML
我正在使用tinyxml. 如何复制或创建现有Xmldocument的副本? 我浏览了使用 clone 复制节点的链接.但这是受保护的,我不想从中衍生出一堂课. 我也不想将现有的xmldocument保存到文件中,然后制作另一个xmldocument对象读取文件以包含其副本. 我也无法使用 memcpy 进行深层副本,因为我不知道整个XML的大小. 我也不想让两个对象一个接一个地使用: XMLDocumentObj1 = add_some_data XMLDocumentObj2 = add_the_same_data, and so on 我想要第二份副本的主要原因是,第一个可以通过代码的不同部分修改,而在多个位置则"读取"相同的副本.我需要确保读取Xmldocument时不会发生任何错误,因为有可能通过运行线程在后台修改了这一点,而且我没有程序崩溃. 解决方案 这是我写的是要进行深层副本.它获取源节点并在目标节点,儿童和所有内容下复制
12 2023-12-21
编程技术问答社区
如何使用TinyXml来解析一个特定的元素
我想从TinyXml输出中解析一组元素.本质上,我需要挑选端口的任何端口元素的"portid"属性,其状态为"open"(如下所示,端口23). 最好的方法是什么?这是tinyxml输出的(简化)列表:
10 2023-12-21
编程技术问答社区
如何在TinyXML2中把XMLElement转换为字符串
在tinyxml 1中,可以使用将子元素转换为字符串 TiXmlElement * pxmlChild = pxmlParent->FirstChildElement( "child" ); std::stringstream ss; ss abc 我想要子元素的XML,例如 abc 解决方案 来自Tinyxml2社区: 打印(子节点的)在实用程序函数中: XMLPrinter printer; pxmlChild->Print( &printer ); ss
12 2023-12-21
编程技术问答社区
用 C++ 实现 XML 序列化/反序列化
我正在使用Mingw的C ++,这是GNC C ++的Windows版本. 我想做的是:将C ++对象序列化为XML文件,并从XML文件中进行序列化对象.我检查tinyxml.它非常有用,并且(如果我误解了它,请纠正我)它基本上会在处理过程中添加所有节点,最后使用TixMldocument :: Savetofile(filename)函数将它们放入一个块中. 我正在进行实时处理,如何即时写入文件并将以下结果附加到文件? 谢谢. 解决方案 我注意到每个TixMLBase类都有一个打印方法,并且支持流到字符串和流. 您可以按顺序行走文档的新部分,并在添加时输出这些部分,也许? 尝试一下..... 托尼 其他解决方案 Boost具有非常不错的序列化/挑战lib boost.Serialization . 如果将对象流式传输到boost xml 其他解决方案 这是C ++对象序列化的更好示例:
10 2023-10-25
编程技术问答社区
在另一类/名称空间中专业化功能模板?
注意:此问题仅与tinyxml松散相关,但是包括这样的细节可能有助于更好地说明该概念. 我编写了一个函数模板,该模板将通过父XML节点子迭代,检索子元素的值,然后将其元素值推到向量. "检索值"零件也写为函数模板: 即. template Type getXmlCollectionItem( const char* elementName, TiXmlNode* child, TiXmlNode* parent); 有针对检索部分的专业知识,用于返回不同类型的子元素价值,例如STD :: String和其他自定义对象. 即. template std::string getXmlCollectionItem( const char* elementName, TiXmlNode* child, TiXmlNode* parent); template MyObj
2 2023-10-15
编程技术问答社区
如何从`std::istream`加载XML文档?
我想从std::istream加载tinyxml文档,但不包含这样的方法: /** Load a file using the current document value. Returns true if successful. Will delete any existing document data before loading. */ bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); /// Save a file using the current document value. Returns true if successful. bool SaveFile() const; /// Load a file using the given filename. Returns true if successful. bool LoadFile( const char *
12 2023-09-29
编程技术问答社区
当使用TinyXml for C++时,我需要清理哪些内存管理?
我正在使用 tinyxml : TiXmlDocument doc; TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" ); TiXmlElement* main = new TiXmlElement("main"); TiXmlElement* header = new TiXmlElement("header"); header->SetAttribute("attribute","somevalue"); main->LinkEndChild(header); // ... Add many more TiXmlElment* to other elements all within "main" element doc.LinkEndChild(decl); doc.LinkEndChild(main); // ... do stuff with doc // Now I am done wi
54 2023-03-25
编程技术问答社区
在Cygwin下用CMake编译库
我一直在尝试使用CMake作为一个迷你项目来编译Tinyxml,并试图学习CMAKE.作为补充,我正在尝试将其编译到动态库中并安装自身,以便它起作用. 到目前为止这使其在两个文件夹中安装两个文件.此设置有效,但我猜想.dll应该在/bin中,并且.dll.a应该在/lib中.这是某种特定问题的问题还是我做错了什么? 解决方案 .dll是运行时库文件,必须在运行时间的目标系统上存在(并且在那里$ path). .dll.a文件是.dll的导入库,必须在链接时间在编译机上存在.您需要将.dll文件分配到程序应运行的位置,以及.dll和.dll.a都将用于链接其他程序链接的位置.您不需要仅运行程序的机器上的.dll.a文件. 当您不想创建共享库时,您可以使用静态关键字在add_library命令中: add_library(mylib STATIC foo.c bar.cpp) 这种方式不会创建共享的库,但是库中的代码将由链接器添加到最终可执行文件中. 其他解决
114 2023-03-16
编程技术问答社区
tinyXML元素访问时的运行时错误
昨天是我的第一次尝试.我正在尝试在以下" new.xml"文件 中捕获变量"时间" Go to the Toy store! Do bills Go to the SecondToy store! 这是我的代码 TiXmlDocument doc("new.xml"); TiXmlNode * element=doc.FirstChild("main"); element=element->FirstChild("ToDo"); string temp
42 2023-03-13
编程技术问答社区
不能在C++/CLI项目中包含TinyXML
我有一个C ++/CLI项目,我想包括tinyxml. 我下载了图书馆,将其作为一个新项目添加到我的解决方案中,并从项目中添加了一个参考. 在我的代码中我有 #include "StdAfx.h" #include "tinyxml.h" 当我编译时,我会收到70个链接错误.我试图在tinyxml.h中评论#define tixml_safe(在Google上看到了),但不起作用. 谢谢,戴夫 解决方案 得到它,我将tinyxml包括在我当前项目的一个子文件夹中,而不是在自己的项目中添加.我还使用了tinyxmlstl.谢谢.
22 2023-03-03
编程技术问答社区
tinyXml如何添加一个元素
我有以下内容: TiXmlDocument doc; TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "utf-8", ""); doc.LinkEndChild( decl ); TiXmlElement * root = new TiXmlElement( "Value" ); TiXmlElement * element = new TiXmlElement( "number" ); root->LinkEndChild( element); TiXmlText * text = new TiXmlText( "5" ); element->LinkEndChild( text ); 这样可以吗?我想拥有.xml喜欢: 5 thx! 我的问题是我是否可以将int值作为字符串具有.如果是的话,如果我以XML文件
30 2023-03-02
编程技术问答社区
Visual Studio 2005和Tinyxml-xml文件位置
由于某种原因,通过Visual Studio 2005(C ++)创建的Tinyxml文件保存在我的桌面上,而不是在调试文件夹或程序的根文件夹中. 如果有人知道告诉VS2005以保存tinyxml创建文件的某种方法? 我尝试了Eclipse,它将文件保存在程序的根文件夹中,这是我要做的. 谢谢. 编辑: 我正在做一个BHO(浏览器助手对象),这是一个附加的Internet Explorer.因此,当我运行程序时 解决方案 您通常不应该渴望将数据文件写入程序目录.与其将输出目录放在偶然性时,您应该明确地告诉tinyxml,当您调用SaveFile时,您希望通过在整个路径中创建文件. . 其他解决方案 确保将工作目录设置为" Project Properties->调试"中的$(OUTDIR) 然后致电: TiXmlDocument tiXmlDocument; tiXmlDocument.SaveFile( "bleh.xml" );
42 2023-03-02
编程技术问答社区
TinyXML-有没有办法跳过有问题的DOCTYPE标签?
我正在使用tinyxml2来解析看起来像: 的XML ]> ... 不幸的是,按照 http://www.grinninglizard.com/tinyxmldocs/看起来像tinyxml不支持解析医生标签,例如上述样本中的标签.我对DTD本身不感兴趣,只想解析其余的XML(以标签开始).推荐或最佳方法是什么?我尝试检索扎根于(使用document.FirstChildElement("comp"))的XML子树,但是这种方法失败了,这可能是因为Tinyxml无法继续解析
38 2023-03-01
编程技术问答社区
在TinyXML中解析<multi_path literal="not_measured"/>。
如何在tinyxml中解析以下内容: 我能够轻松解析以下行: 1234 问题在于,第一个语句并未以正常方式解析.请建议如何解决这个问题. 解决方案 不是100%确定您的问题要问什么,但是这里是使用tinyxml通过XML文件的基本格式: /*XML format typically goes like this: Text */ TiXmlDocument doc("document.xml"); bool loadOkay = doc.LoadFile(); // Error checking in case file is missing if(loadOkay) { TiXmlElement *pRoot = doc.RootElement();
18 2023-03-01
编程技术问答社区
UTF-8和TinyXML
由于某种原因,我无法正确读取XML文件的数据. 例如,我得到的是"schrüder",我得到了类似"schrã¼der"的东西. 我的代码: tinyxml2::XMLDocument doc; bool open(string path) { if(doc.LoadFile(path.c_str()) == XML_SUCCESS) return true; return false; } int main() { if(open("C:\\Users\\Admin\\Desktop\\Test.xml")) cout FirstChild()->GetText(); cout
66 2023-03-01
编程技术问答社区
TinyXML和保存HTML实体
我正在使用tinyxml来解析一些XML,这些XML具有一些嵌入文本节点中的HTML实体.我意识到tinyxml只是XML解析器,因此我不希望tinyxml对实体做任何事情.实际上,我希望它让他们一个人呆着. 如果我有这样的XML: ... ü ... tixmlText实例上的调用value()我得到: "uuml;" 如此tinyxml似乎总是可以去除anmpersand.有什么办法可以让它放开它,所以它没有变化? 感谢任何想法.. 解决方案 如果您查看 tinyxml文档仅识别五个字符实体(ü不是其中之一),以及Unicode代码点语法 或 . .
32 2022-11-17
编程技术问答社区
如何使用FirstCHildElement从一个xml标签中获取值?
我正在使用 C++.请问如何获取value text from: text 我有 TiXmlHandle handle(&doc); TiXmlElement* section; section=doc.FirstChildElement("message"); 从现在开始怎么做?我知道我必须与 .Element() 合作,但我不知道如何. 解决方案 可以使用GetText()函数获取的内容.我将您的 XML 内容放在一个名为 dummy.xml 的文件中,并使用以下代码打印内容: TiXmlDocument doc("dummy.xml"); if(doc.LoadFile()) { TiXmlHandle hDoc(&doc); TiXmlElement *pRoot; pRoot = doc.FirstChildElement("message"); printf("
732 2022-08-12
编程技术问答社区
TinyXML。将文件保存为char *或字符串
我正在尝试使用 TinyXML 从内存中读取和保存,而不仅仅是读取文件并将其保存到磁盘. 看来文档的 parse 函数可以加载一个 char *.但是,当我完成它时,我需要将文档保存到 char * 中.有人知道吗? 编辑:印刷&流媒体功能不是我想要的.它们以可查看的格式输出,我需要实际的 xml 内容. 编辑:打印很酷. 解决方案 我对 TinyXML 不熟悉,但是从文档看来,通过使用 operator
130 2022-08-12
编程技术问答社区