说我有以下XML:
<logger>
<level value="ALL" />
<appender-ref ref="AsyncAppender" />
</logger>
<logger name="PerformanceMetricsLog">
<level value="OFF" />
</logger>
我需要对此进行XML转换。
如何匹配xdt:Locator
或第一个匹配?在第二个?
我尝试了xdt:Locator="Match(name)"
,我收到一条错误消息,指出没有“name”属性。 (我原本希望如果属性不在那里,它会优雅地为比赛返回假。)
答案 0 :(得分:1)
XDT&#39; s Match
采用以逗号分隔的属性名称列表,因此xdt:Locator="Match(name)"
期望有一个名称属性,&#34; name&#34;。
您可能正在考虑XPath,其中缺少属性只会返回false,您可以通过not(@name)
测试其缺席。
XDT有一个XPath
函数,它需要一个实际的XPath,所以你可以这样写:
xdt:Locator="XPath(//logger[not(@name)])"
选择无名logger
元素。
注意:您编写的XML格式不正确。确保在实际的XML中有一个根元素。