我一直在尝试从这个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) 为了提供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