C# 解析XML:my元素中的冒号会导致XPath丢失它

C# 解析XML:my元素中的冒号会导致XPath丢失它,c#,xml,xpath,selectsinglenode,C#,Xml,Xpath,Selectsinglenode,我加载了一个XML文档,并尝试使用XPath进行搜索。此文件中的根节点是,文件结尾用正确关闭 我的问题是,如果不使用后代轴,我无法在树上行走。换句话说,我可以这样做:选择SingleNode(“//TransactionHeader[SHIPPERSTATE='CA']”)并获得一个节点作为回报。但是我不能做应该等效的事情:SelectSingleNode(“/Transmission/TransmissionBody/Transaction/Transaction header[SHIPPER

我加载了一个XML文档,并尝试使用XPath进行搜索。此文件中的根节点是
,文件结尾用
正确关闭

我的问题是,如果不使用后代轴,我无法在树上行走。换句话说,我可以这样做:
选择SingleNode(“//TransactionHeader[SHIPPERSTATE='CA']”)
并获得一个节点作为回报。但是我不能做应该等效的事情:
SelectSingleNode(“/Transmission/TransmissionBody/Transaction/Transaction header[SHIPPERSTATE='CA']”)

如果我删除
t:
,我可以在
/Transmission
上进行XPath搜索并获得整个文件。在
t:
中,我只得到null。或者如果我尝试
SelectSingleNode(“t:Transmission”)
我的XPath语句会出错

我通常不需要查询根元素,因此我应该可以只使用子代轴进行搜索。但是XML在我看来是有效的,所以我想知道如何解决这个问题。另外,我不想因为不知道如何处理而要求客户端删除“t:”。

t:“t:”是一个名称空间前缀,它绑定到名称空间“urn:inboundshipping”。为了正确处理它,您必须告诉c#前缀绑定到什么。应该解释如何使用System.Xml.XmlNamespaceManager来处理名称空间

编辑:请参见