gpt4 book ai didi

xml - 如何使用xerces C++获取节点值

转载 作者:行者123 更新时间:2023-12-05 04:18:54 24 4
gpt4 key购买 nike

xerces-c++ 库是否可以仅从以下 XML 字符串或文件中获取目标节点的值?

<GET>
<Context>
<Destination>DATA
<Commands>
<GRP>VAL
<CAT>SET
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
</CAT>
</GRP>
</Commands>
</Destination>
</Context>
</GET>

如果可能,请给出示例代码。

最佳答案

您可以使用 Xalan C++ 库中的 XPath 实现此目的。但仅使用 Xerces C++ 库,您需要以困难的方式进行

下面是方法形式的逻辑:

string getDestinationValue(const DOMDocument& xmlDoc) 
{
DOMElement* elementRoot = xmlDoc->getDocumentElement();
DOMNode *child = elementRoot->getFirstChild()->getFirstChild()->getFirstChild();
string strVal;
if(DOMNode::TEXT_NODE == child->getNodeType())
{
DOMText* data = dynamic_cast<DOMText*>(child);
const XMLCh* val = data->getWholeText();
strVal += XMLString::transcode(val);
}
else
{
throw "ERROR : Non Text Node";
}

}
return strVal;
}

希望这有帮助:)

三地盘卡玛卡

关注我:http://mycpplearningdiary.blogspot.com/

关于xml - 如何使用xerces C++获取节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com