我有以下XML
<?xml version="1.0"?>
<FileHeader
xmlns="urn:schemas-ncr-com:ECPIX:CXF:FileStructure:020001"
VersionNumber="020001"
TestFileIndicator="P"
CreationDate="13012009"
CreationTime="172852"
FileID="0000000001"
>
<Item
ItemSeqNo="09011340010009"
PayorBankRoutNo="00704524"
Amount="398000"
AccountNo="000003850010205"
SerialNo="000512"
TransCode="03"
PresentingBankRoutNo="00400019"
PresentmentDate="13012009"
CycleNo="01"
NumOfImageViews="2"
ClearingType="01"
DocType="D"
CurrencyInd="LYD"
IQAIgnoreInd="0"
CashValueInd="1"
TruncatingRTNo="00405117"
SpecialHandling="00"
RepresentmentCnt="0"
MICRRepairFlags="000000"
>
<AddendA
BOFDRoutNo="00400019"
BOFDBusDate="13012009"
DepositorAcct="0000534983"
/>
<ImageViewDetail ...
我需要使用XmlDocument .NET类的Select(xpath_expression)方法来访问元素“ImageViewDetail”。
以下代码无效
xmlDocument.Select("//Item/AddendA/ImageViewDetail");
除非我删除
xmlns="urn:schemas-ncr-com:ECPIX:CXF:FileStructure:020001"
这里处理命名空间的正确方法是什么?
谢谢,
答案 0 :(得分:5)
在xpath中使用XmlNamespaceManager
和别名:
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("x", doc.DocumentElement.NamespaceURI);
foreach (XmlNode node in doc.SelectNodes(
"//x:Item/x:AddendA/x:ImageViewDetail", mgr))
{
Console.WriteLine(node.OuterXml);
}
答案 1 :(得分:0)
检查http://www.vijaymukhi.com/documents/books/csclasses/chap7.htm您可能会发现可以提供帮助的内容。