用于比较骆驼属性值的表达式Java DSL
问题描述:
我想用XPath编写一个表达式,用于将我xml消息头中的属性值与特定值进行比较,以将其指向适当的文件夹。 XML头是用于比较骆驼属性值的表达式Java DSL
?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cda\render\cda.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" />
我想比较某一节点attirbute(属性码元的代码)的值并将其引导到保持真正的文件夹它。
我写的东西像
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表达式。
非常感谢!
答
您的示例xml无效。代码元素的属性代码也不是'12.3.34.65'。请尝试在下面将输出重定向到destinationFolder。
from("file:testxml")
.choice()
.when()
.xpath("/Books/code[@code='x.x.x.x']")
.to("file:destinationFolder");
你是对的属性值,但我错误地粘贴了抽象值。我现在纠正了它。我使用值'12.3.3.6.6'测试了XML。你写的代码和我写的代码一样,但没有名字空间。如果没有名称空间参考,表达式将不起作用。 – Lucky