#java #xpath #apache-camel
#java #xpath #apache-camel
Вопрос:
Я хотел бы написать выражение с XPath для сравнения значения атрибута в заголовке моего XML-сообщения с определенным значением, чтобы направить его в соответствующую папку. Заголовок XML
?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdarendercda.xsl"?>
<Books xmlns="urn:hl7-org:v3"
xmlns:classCode="DOCCLIN" xmlns:moodCode="EVN"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:hl7-org:v3 ./cda_r2_normativewebedition2010/infrastructure/cda/CDA.xsd">
<realmCode code="DE" />
<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040" />
<templateId root="2.16.840.1.113883.10.20.29" />
<templateId root="2.16.840.1.113883.10.20.33" />
<templateId root="2.16.840.1.113883.10.20.33.1.1" />
<id extension="2015121415313522" />
<code code="12.3.34.65" codeSystem="2.16.840.1.113883.6.1"
codeSystemName="LOINC" displayName="Document" />
<title>Prices</title>
<effectiveTime value="201512141531 0000" />
<confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25" />
<languageCode code="de-DE" />
Я хотел бы сравнить определенный атрибут узла (код атрибута элемента code) со значением и направить его в папку, которая имеет значение true.
Я написал что-то вроде
from("file:testxml/")
.choice()
.when()
// .xpath("urn:hl7-org:v3:Books/urn:hl7-org:v3:code/@code = '12.3.34.65'")
.xpath("urn:hl7-org:v3:ClinicalDocument/urn:hl7-org:v3:code[@code='12.3.34.65']")
.to("file:xPath/")
.to("direct:xpath");
}
Я хочу проверить, является ли значение атрибута ‘12.3.34.65’. Не могли бы вы, пожалуйста, поправить меня и сообщить мне, как правильно написать выражение xpath.
Большое спасибо!
Ответ №1:
Ваш образец xml недопустим. Также код атрибута элемента code не является ‘12.3.34.65’. Попробуйте ниже перенаправить вывод в папку назначения.
from("file:testxml")
.choice()
.when()
.xpath("/Books/code[@code='x.x.x.x']")
.to("file:destinationFolder");
Комментарии:
1. Вы правы насчет значения атрибута, но я ошибочно вставил абстрактное значение. Сейчас я это исправил. Я протестировал XML, используя значение ‘12.3.34.65’. Написанный вами код совпадает с написанным мной, но без пространства имен. Без ссылки на пространство имен выражение не будет работать.