我有以下XML:
<envelope>
<action>INSERT</action>
<auditId>123</auditId>
<payload class="vendor">
<fizz buzz="3"/>
</payload>
</envelope>
我正在尝试编写一个XPath表达式,该表达式将抽取vendor
(payload
的{{1}}属性的值)或其任何值。
我最好的尝试是:
class
但这需要表达式已经知道/dataEnvelope/payload[@class="vendor"]@class
是属性的值。但是,如果XML是:
vendor
然后,我希望表达式提取<dataEnvelope>
<action>INSERT</action>
<auditId>123</auditId>
<payload class="foobar">
<fizz buzz="3"/>
</payload>
</dataEnvelope>
。有什么想法我要去哪里吗?
答案 0 :(得分:1)
如果您需要$scope.$apply()
节点中的function(response, status) {
console.log(_status);
$scope.$apply(function() {
$scope.isDisplay = true;
$scope.msg.success = "Success! Check your Email";
});
} else { [...]
值,则可以使用
@class
或者只是
payload
答案 1 :(得分:0)
首先,您的两个XML文件不同步-一个引用envelope
和另一个引用dataEnvelope
。因此,如有必要,将另一个交换。
因此,要获取payload
的属性值,可以使用这样的XPath表达式,该表达式使用子项的属性值来更具体:
/envelope/payload[fizz[@buzz='3']]/@class
输出为:
vendor
答案 2 :(得分:0)
如果document元素可以/将要更改,则可以使XPath更通用,并从class
元素中选择payload
属性的值,该元素是任何元素的子元素:>
/*/payload/@class
如果您知道它将永远是envelope
的子代,那么它会更具体(但以上内容仍然有效):
/envelope/payload/@class