我试图创建和xpath表达式,它返回了一个节点的值,但是我发现我自己无法这样做,因为元素在另一个元素中它具有与根不同的命名空间。从另一个名称空间不同于另一个元素的元素检索一个元素
比如我想从以下XML检索InternalSystemId但传统的XML将无法正常工作
XPATH我试图使用
/SomeMessage[1]
/MessageDetails[1]
/PAYLOAD[1]
/Call-Name[1]
/Body[1]
/ActionToTake[1]
/Fields[1]
/InternalSystemId[1]
XML我有
<?xml version="1.0" encoding="UTF-8"?>
<SomeMessage>
<MessageDetails>
<FROM/>
<TO/>
<PAYLOAD>
<Call-Name
xmlns:ns0="http://www.mysite.com/interface/genericnamespace"
xmlns="http://www.mysite.com/interface/genericnamespace">
<Header xmlns="">
<Transaction>
<Mandatory>
<TransactionId>111111</TransactionId>
</Mandatory>
<System-Use-Only>
<Name>Receiver</Name>
<Someone>Customer</Someone>
<Something>OUT</Something>
</System-Use-Only>
</Transaction>
</Header>
<Body xmlns="">
<ActionToTake>
<TransactionName>ActionToTake</TransactionName>
<Fields>
<InterfaceId>w00tie</InterfaceId>
<CustomerSystemId>555555</CustomerSystemId>
<InternalSystemId>4444444</InternalSystemId>
<SubmittedDate
>2011-04-14T12:00:00-00:00</SubmittedDate>
<EventType>A type</EventType>
</Fields>
</ActionToTake>
</Body>
</Call-Name>
</PAYLOAD>
</MessageDetails>
</SomeMessage>
可能DUPLI [在C#中使用带默认命名空间的Xpath](http://stackoverflow.com/questions/585812/using-xpath-with-default-namespace-in-c) – 2011-04-29 21:36:30