如何使用XPath使用libxml2从C 中的XML文件中检索节点和特定元素字符串
How to retrieve node and particular element string from xml file in C++ using libxml2 by using xpath?
如何使用libxml?
在C 中检索文本值这是xml:
<?xml version="1.0" encoding="UTF-8"?>
<Help xmlns="http://www.example.org/HelpFileStructure" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/HelpFileStructure HelpFileStructure.xsd ">
<Text>dfgdfg</Text>
</Help>
代码:
void Help::HelpName()
{
string Help_text;
parser.parse_file(XmlFileName);
Node* root = parser.get_document()->get_root_node();
NodeSet result = root->find("/Help/Text");
Element *first_element = (Element *)result.at(0);
Help_text = first_element->get_child_text()->get_content();
}
使用以下:
NodeSet result = root->find("//*[local-name()='Help']/*[local-name()='Text']");
获得一个节点集,每个节点是一个名为 Text
的元素,无论该元素在哪个命名空间中,这都是名为Help
的任何元素的孩子,无论其在哪个名称空间中。
如果您仅在http://www.example.org/HelpFileStructure
名称空间中使用Help
和Text
元素,并且想要忽略任何其他名称空间中文档可能具有的Text
和Help
元素,则可以使用namespace-uri()
函数,例如:
NodeSet result = root->find("//*[local-name()='Help' and namespace-uri()='http://www.example.org/HelpFileStructure']/*[local-name()='Text' and namespace-uri()='http://www.example.org/HelpFileStructure']");
相关文章:
- 反向给定链表中的K节点
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- Boost Graph Library,修复节点大小
- C++A*算法并不总是在路径中具有目标节点
- 使用VerQueryValue检索应用程序的文件描述
- 如何找到2个单链表的公共节点
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 为什么我的删除节点函数实际上没有删除节点?
- 是否可以从格式字符串中检索"width"
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 我们可以删除链表中静态内存中的节点吗
- 如何在pugixml中获取节点的内部XML
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?
- 从GCC功能树节点中检索函数参数
- 如何使用libxml2从C 中的XML文件中检索节点和特定元素字符串而不使用XPATH
- 如何使用XPath使用libxml2从C 中的XML文件中检索节点和特定元素字符串
- 如何检索具有键而非标量的映射节点
- c++如何从具有多个参数的节点中检索信息