我有以下XML文档
<?xml version="1.0" encoding="utf-8"?>
<GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope">
<EnvelopeVersion>2.0</EnvelopeVersion>
<Header>
<MessageDetails>
<Class>
</Class>
<Qualifier>request</Qualifier>
<Function>submit</Function>
<CorrelationID />
<Transformation>
</Transformation>
<GatewayTest>0</GatewayTest>
</MessageDetails>
<SenderDetails>
<IDAuthentication>
<SenderID>
</SenderID>
<Authentication>
<Method>clear</Method>
<Role>principal</Role>
<Value></Value>
</Authentication>
</IDAuthentication>
</SenderDetails>
</Header>
<GovTalkDetails>
<Keys>
<Key Type="TaxOfficeNumber">
</Key>
<Key Type="TaxOfficeReference">
</Key>
</Keys>
<TargetDetails>
<Organisation>IR</Organisation>
</TargetDetails>
<ChannelRouting>
<Channel>
<URI>
</URI>
<Product></Product>
<Version>
</Version>
</Channel>
<timestamp>
</timestamp>
</ChannelRouting>
</GovTalkDetails>
<Body>
<IRenvelope xmlns="">
<IRheader>
<Keys>
<Key Type="TaxOfficeNumber">
</Key>
<Key Type="TaxOfficeReference">
</Key>
</Keys>
<PeriodEnd>
</PeriodEnd>
<DefaultCurrency>GBP</DefaultCurrency>
<IRmark>
</IRmark>
<Sender>Employer</Sender>
</IRheader>
</IRenvelope>
</Body>
</GovTalkMessage>
我正在使用XMLDocument
将其加载到XMLDocument.load()
。
现在,当我针对它运行xpath查询时,他们没有按照我的预期做出响应,我似乎无法找到原因,我使用了XPath Visualiser工具并且它显示了例如// Keys / Key应该返回4个节点< / p>
当我运行以下c#
时document.SelectNodes(@"//Keys/Key") it returns 2 nodes not the expected 4.
当我运行以下
时document.SelectNodes(@"//Header") it returns 0 nodes
还要运行
document.SelectNodes(@"GovTalkMessage") returns 0 nodes.
所有建议和帮助都很受欢迎。
由于
本
答案 0 :(得分:0)
XPath需要名称空间。您尝试选择的标签是一个,因此您必须告诉选择要查找的位置。