XML查询名称空间&;节点

XML查询名称空间&;节点,xml,web-services,xpath,soap,Xml,Web Services,Xpath,Soap,我希望为我的XML查询函数编写一个XPath查询。我遇到了一个问题,主要是因为我以前对任何XML都不了解,所以我被迫做了一点 但假设我有一个包含以下XML输出的文本框,我如何从的中提取信息?请注意,还有一些其他实例,因此对进行全面搜索是行不通的,必须特别关注中的 例子 例子 例子 例子 例子 例子 例子 例子 例子 例子 例子 例子 例子 例子 5. 214 9/20/2017 NA 9/20/2017 5001868 上午10:00 2017-09-25T00:00:00 旧金山 (877)

我希望为我的XML查询函数编写一个XPath查询。我遇到了一个问题,主要是因为我以前对任何XML都不了解,所以我被迫做了一点

但假设我有一个包含以下XML输出的文本框,我如何从
中提取信息?请注意,
还有一些其他实例,因此对
进行全面搜索是行不通的,必须特别关注
中的


例子
例子
例子
例子
例子
例子
例子
例子
例子
例子
例子
例子
例子
例子
5.
214
9/20/2017
NA
9/20/2017
5001868
上午10:00
2017-09-25T00:00:00
旧金山
(877) 220-4582
09/14
聚氨基甲酸酯
货物被提货了
上午12:03
09/25
哑弹
预计交付日期为2017年9月25日
上午12:03
09/16
氯
拖车关闭-准备发货
凌晨2点
09/17
数字信号处理器
发送至码头的拖车
下午12:00
09/18
安然
拖车行驶路线:怀俄明州布莱恩
下午3:02
09/19
投资部
发票已通过电子邮件发送
上午6:03
09/19
阿克斯
拖车抵达位于科罗拉多州丹佛的终点站
下午12:00
09/19
UNL
在码头卸下的拖车
下午12:01
09/19
扶轮基金会
交付
下午五点
09/20
对外直接投资
发货
下午12:00
09/20
恰当的
指定于2017年9月20日交付给收货人
下午1时03分
09/20
迪德
交付给收货人的货物
下午四时零五分
真的
真的
假的

答案取决于XPath的处理方式以及是否可以将命名空间绑定到前缀

如果您可以绑定
https://webservices.rrts.com/tracking/
namespace到前缀(
tr
例如),您可以这样做

//tr:ShipmentOrigin/tr:State
如果无法将命名空间绑定到前缀,可以使用
local-name()

//*[local-name()='ShipmentOrigin']/*[local-name()='State']
您还可以/应该使用
namespace-uri()
来确保完全匹配您想要匹配的内容

//*[namespace-uri()='https://webservices.rrts.com/tracking/' and local-name()='ShipmentOrigin']/*[namespace-uri()='https://webservices.rrts.com/tracking/' and local-name()='State']

或者在XPath2.0中,
/*:ShipmentOrigin/*:State
//*[namespace-uri()='https://webservices.rrts.com/tracking/' and local-name()='ShipmentOrigin']/*[namespace-uri()='https://webservices.rrts.com/tracking/' and local-name()='State']