У меня проблемы с получением нескольких значений XML-файла в HTML-таблицу.
Я хочу иметь имя всех родителей со свойствами destinationConnectors в tcp.TcpDispatcherProperties со следующим выражением xpath:
"/serverConfiguration/channels/channel[destinationConnectors/connector/properties[@class='com.mirth.connect.connectors.tcp.TcpDispatcherProperties']]/name"
с этим выражением:
родитель отображается только один раз, даже если у него есть несколько адресатов с этим классом
проблема в том, чтоесли есть несколько destinationConnectors [1..n], я получаю родителя от // channel / name только один раз в моей html-таблице.
Например, что я хочу отобразить в Javascript с помощью xml.evaluate,если у меня есть 3 канала - Channel1 с 1 адресатом и Channel2 с 2 адресатами:
------------ ------------- -------------
Channel1Name | Channel2Name | Channel2Name
------------ ------------- -------------
Destination1 Destination2a Destination2b
Какой вывод я хочу получить:
- Channel1Name from "/serverConfiguration / channel / channel / name "
- Channel2Name от" / serverConfiguration / channel / channel / name "
- Channel2Name от" / serverConfiguration / channel / channel / name "
not
- Channel1Name
- Channel2Name
Treeпредставление структуры XML
выдержка XML:
<channelGroup version="3.4.2">
<id>e03a0301-4e29-405e-8ee0-f7a47e30d033</id>
<channels>
<channel version="3.4.2">
<id>e4dccb26-b645-4245-bb7e-67e1e4901cd2</id>
<name>Channel1</name>
<destinationConnectors>
<connector version="3.4.2">
<name>Destination 1</name>
<properties class="com.mirth.connect.connectors.tcp.TcpDispatcherProperties" version="3.4.2">
<pluginProperties/>
</properties>
</connector>
</destinationConnectors>
</channel>
<channel version="3.4.2">
<id>b33ea541-e723-47a6-af52-e76648c5674e</id>
<name>Channel2</name>
<destinationConnectors>
<connector version="3.4.2">
<name>Destination 2a</name>
<properties class="com.mirth.connect.connectors.tcp.TcpDispatcherProperties" version="3.4.2">
<pluginProperties/>
</properties>
</connector>
<connector version="3.4.2">
<name>Destination 2b</name>
<properties class="com.mirth.connect.connectors.tcp.TcpDispatcherProperties" version="3.4.2">
<pluginProperties/>
</properties>
</connector>
</destinationConnectors>
</channel>
</channels>
</channelGroup>
Запрос Javascript:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
showResult(xhttp.responseXML,"/serverConfiguration/channels/channel/destinationConnectors/connector/properties[@class='com.mirth.connect.connectors.tcp.TcpDispatcherProperties']/concat(../../../name, ' : ', ../name)", "destTcpChannelName");
}
};
xhttp.open("GET", "edited/23-07-2019-MirthBackup.xml", true);
xhttp.send();
function showResult(xml, path, head) {
var txt = "<th>" + head +"</th><tr>";
if (xml.evaluate) {
var nodes = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result = nodes.iterateNext();
while (result) {
txt += "<td>" + result.childNodes[0].nodeValue + "</td>";
result = nodes.iterateNext();
}
}
document.getElementById(head).innerHTML = txt + "</tr>";
}