как использовать libxml2 для изменения существующего XML-файла?

Я проверил вашу конфигурацию для Swagger в Startup.cs, и мне не показалось неожиданным настроить swagger. Единственное, что мне приходит в голову, это то, что вы ошибаетесь в настройке SwaggerEndpoint, которая указывает вам (я полагаю), что вы можете получить доступ к своему Swagger-интерфейсу из этого URL-адреса, но он содержит json для построения и настройки этой страницы UI. Справедливо, но вы должны попробовать https://localhost:44334/swagger или https://localhost:44334/swagger/index.html, чтобы увидеть страницу вашего интерфейса Swagger. Надеюсь, что это решит вашу проблему.

10
задан Brian R. Bondy 2 January 2009 в 01:57
поделиться

1 ответ

#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>

//Load in the xml file from disk
xmlDocPtr pDoc = xmlParseFile("file.xml");
//Or from a string xmlDocPtr pDoc = xmlNewDoc("<root><element/></root>");

//Do something with the document
//....

//Save the document back out to disk.
xmlSaveFileEnc("file.xml", pDoc, "UTF-8");

Главным, которое Вы хотите, являются, вероятно, эти функции:

xmlNodePtr pNode = xmlNewNode(0, (xmlChar*)"newNodeName");
xmlNodeSetContent(pNode, (xmlChar*)"content");
xmlAddChild(pParentNode, pNode);
xmlDocSetRootElement(pDoc, pParentNode);

И вот быстрый пример использования xpath для выбора вещей:

//Select all the user nodes
xmlChar *pExpression((xmlChar*)_T("/users/user"));
xmlXPathObjectPtr pResultingXPathObject(getnodeset(pDoc, pExpression));
if (pResultingXPathObject)
{
    xmlNodeSetPtr pNodeSet(pResultingXPathObject->nodesetval);
    for(int i = 0; i < pNodeSet->nodeNr; ++i) 
    {
        xmlNodePtr pUserNode(pNodeSet->nodeTab[i]);
                   //do something with the node
    }
}
xmlXPathFreeObject(pResultingXPathObject);
21
ответ дан 3 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: