Получить комментарий в файле XML от RapidXML - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь получить значение команды в xml-файле. Я нашел функцию type() в ее руководстве. Но он просто возвращает числовое значение о типе узла. Есть ли способы получить его?

Это мой фрагмент:

 xml_node<> *Node = Doc.first_node();
 xml_node<> *Sub = Node->first_node("Task");
std::cout << "Comment: " << Sub->type() << std::endl;

И возвращаемое значение: Комментарий: 1

Это содержимое файла:

<!-- \GoogleUpdateTaskMachineCore -->    ***<<== this is the value I wanna get.***
<?xml version="1.0" encoding="UTF-16"?>

<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

  <RegistrationInfo>

    <Version>1.3.33.7</Version>

    <Description>Keeps your Google software up to date. If this task is disabled or stopped, your Google software will not be kept up to date, meaning security vulnerabilities that may arise cannot be fixed and features may not work. This task uninstalls itself when there is no Google software using it.</Description>

  </RegistrationInfo>

  <Triggers>

    <LogonTrigger>

      <Enabled>true</Enabled>

    </LogonTrigger>

    <CalendarTrigger>

      <StartBoundary>2017-11-14T12:07:01</StartBoundary>

      <ScheduleByDay>

        <DaysInterval>1</DaysInterval>

      </ScheduleByDay>

    </CalendarTrigger>

  </Triggers>

  <Principals>

    <Principal id="Author">

      <UserId>S-1-5-18</UserId>

      <RunLevel>HighestAvailable</RunLevel>

    </Principal>

  </Principals>

  <Settings>

    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>

    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>

    <StartWhenAvailable>true</StartWhenAvailable>

    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>

    <Enabled>true</Enabled>

    <RunOnlyIfIdle>false</RunOnlyIfIdle>

    <WakeToRun>false</WakeToRun>

    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>

  </Settings>

  <Actions Context="Author">

    <Exec>

      <Command>C:\Program Files (x86)\Google\Update\GoogleUpdate.exe</Command>

      <Arguments>/c</Arguments>

    </Exec>

  </Actions>

</Task>

1 Ответ

0 голосов
/ 10 мая 2018

Во-первых, вам нужно будет использовать флаг parse_comment_nodes при parse() документе.

Затем итерируйте по узлам, пока не найдете узел с type() == node_comment, затем получите value() этого узла.

...