小编Jan*_*ski的帖子

使用QXmlItem将子节点值提取为QXmlQuery焦点

我一直在尝试从这个XML文件中获取节点文本值:

  <!DOCTYPE structure>
  <data>
   <x>
    <id>1</id>
    <nam>tytu?</nam>
    <tab>21</tab>
    <ind>5</ind>
    <pre>TY</pre>
    <khw>C.TY</khw>
   </x>
   <x>
    <id>2</id>
    <nam>autor</nam>
    <tab>21</tab>
    <ind>5</ind>
    <pre>FO</pre>
    <khw>C.FO</khw>
   </x>
   <x>
    <id>3</id>
    <nam>has?o korporatywne</nam>
    <tab>21</tab>
    <ind>5</ind>
    <pre>FN</pre>
    <khw>C.FN</khw>
   </x>
  </data>
Run Code Online (Sandbox Code Playgroud)

我想要做的是获取每个节点及其子节点并将其转换为QMap.我在获取单个元素时没有问题,但是当通过将QXmlQuery的结果设置为焦点来获取子项目时,我评估子节点查询的QString是空的.我用这段代码:

QXmlResultItems results;
QFile structure("./structure.xml"); // xml file, as described earlier
structure.open(QFile::ReadOnly);

QXmlQuery query;
query.setFocus(&structure);
query.setQuery("data/x");
query.evaluateTo(&results);

QXmlItem next = results.next();
while(!next.isNull()) {
    qDebug() << next.toNodeModelIndex().stringValue(); // everything's fine. It prints contents of <x>'s child nodes
    QXmlQuery childQuery;
    QString r;
    childQuery.setFocus(next);
    childQuery.setQuery("./nam/text()"); // already tested: "/nam/text()", "/nam/string()", "x/nam/string()", "data/x/nam/string()" etc... …
Run Code Online (Sandbox Code Playgroud)

c++ qt xpath xquery

7
推荐指数
2
解决办法
3431
查看次数

在具有Windows / ServerCore的Windows容器上以无头模式运行Firefox

为了提供Windows Selenium WebDriver Grid,我开始准备可以用作网格节点的Dockerfile。最初的原因是准备可控制Firefox / GeckoDriver版本的映像。在出于同样目的而成功准备Chrome映像的鼓舞下,我开始使用以下Dockerfile:

FROM mcr.microsoft.com/windows/servercore:1809

# Install chocolatey
RUN @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
RUN choco feature enable -n allowGlobalConfirmation

WORKDIR C:\\tools

# Set driver/browser versions
ARG Selenium_Major_Version="3.141"
ARG Selenium_Version="3.141.59"

ARG GeckoDriver_Version="0.24.0"
ARG Firefox_Version="66.0.3"

# Install Java
RUN choco install jdk8

# Download Selenium
RUN powershell Invoke-WebRequest \
    -Uri "https://selenium-release.storage.googleapis.com/$env:Selenium_Major_Version/selenium-server-standalone-$env:Selenium_Version.jar" \
    -OutFile ".\\selenium-server-standalone.jar"

# Install Firefox
RUN choco install firefox --version %Firefox_Version%

COPY config.json .

ENTRYPOINT java \
    -Dwebdriver.gecko.driver=C:\\tools\\geckodriver.exe …
Run Code Online (Sandbox Code Playgroud)

firefox server-core webdriver docker windows-server-container

6
推荐指数
1
解决办法
488
查看次数