如何将XElement.XPathSelectElement与命名空间一起使用

时间:2016-11-25 10:29:27

标签: c# linq xpath xelement

我正在阅读文件“MyMessage.txt”

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:com.company:request.001">
    <ReqHdr>
        <AppInstanceId>AAAA</AppInstanceId>
    </ReqHdr>
    <ReqTxInf>
        <PmtId>
            <TxId>1stTXID</TxId>
        </PmtId>
        <CtgyPurp>
            <Prtry>ECRR</Prtry>
            <TxId>2ndTXID</TxId>
        </CtgyPurp>
    </ReqTxInf>
</Document>

我正在尝试找到第二个TxId字段的值:

    XElement element = XElement.Parse(System.IO.File.ReadAllText(
        System.IO.Path.Combine(
            Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
            "MyMessage.txt")));

    string path = "//ReqTxInf/CtgyPurp/TxId";

    try
    {
        Console.WriteLine(element);
        Console.WriteLine("TxId is:" + element.XPathSelectElement(path).Value);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        Console.WriteLine(e.StackTrace);
    }

如果XML文件没有命名空间,这可以正常工作,但是我需要以某种方式将它添加到查询中。我可以从元素中获取命名空间:

element.Name.Namespace

但我找不到任何关于如何在查询中使用它的参考。

0 个答案:

没有答案