使用 xpath 获取 xsi:type 的值
我正在尝试确定正确的 XPath 表达式以返回 Body
元素上的 xsi:type
属性的值。我已经尝试了似乎所有的事情,但没有运气。根据我读到的内容,这似乎很接近,但显然并不完全正确。有什么快速指导可以让我最终安息吗?
//v20:Body/@xsi:type
我希望它返回 v20:SmsMessageV1RequestBody
<v20:MessageV1Request>
<v20:Header>
<v20:Source>
<v20:Name>SOURCE_APP</v20:Name>
<v20:ReferenceId>1326236916621</v20:ReferenceId>
<v20:Principal>2001</v20:Principal>
</v20:Source>
</v20:Header>
<v20:Body xsi:type="v20:SmsMessageV1RequestBody">
<v20:ToAddress>5555551212</v20:ToAddress>
<v20:FromAddress>11111</v20:FromAddress>
<v20:Message>TEST</v20:Message>
</v20:Body>
</v20:MessageV1Request>
I am trying to determine the correct XPath expression to return the value of the xsi:type
attribute on the Body
element. I have tried what seems like everything without luck. Based on what I read this would seem close but it is obviously not quire correct. Any quick guidance so that I can put finally to rest?
//v20:Body/@xsi:type
I want it to return v20:SmsMessageV1RequestBody
<v20:MessageV1Request>
<v20:Header>
<v20:Source>
<v20:Name>SOURCE_APP</v20:Name>
<v20:ReferenceId>1326236916621</v20:ReferenceId>
<v20:Principal>2001</v20:Principal>
</v20:Source>
</v20:Header>
<v20:Body xsi:type="v20:SmsMessageV1RequestBody">
<v20:ToAddress>5555551212</v20:ToAddress>
<v20:FromAddress>11111</v20:FromAddress>
<v20:Message>TEST</v20:Message>
</v20:Body>
</v20:MessageV1Request>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如评论中所指出的,您有两种选择:
local-name()
引用目标节点,而不考虑命名空间以下是如何执行后者: Java:
请注意,我假设有以下命名空间声明:
您需要更新
getNamespaceURI
以使用实际值。As was pointed out in the comments, you have two choices:
local-name()
to reference the target nodes without regard for namespacesHere's how to do the latter in Java:
Note that I'm assuming the following namespace declarations:
You'll need to update
getNamespaceURI
to use the actual values.所有很好的答案/反馈。我的实际问题似乎已经通过一晚的休息和早上的新构建自行解决。我会根据反馈进行改进。谢谢大家。
All great answers/feedback. My actual issue seems have resolved itself with a night away and fresh build in the morning. I will be enhancing with the feedback. Thanks all.