我想阅读完整的XML元素,值,属性路径

时间:2014-01-04 17:08:20

标签: c# asp.net

任何朋友都可以帮忙解决这个问题。 现在我想在获得值时阅读完整的路径。

<?xml version="1.0" encoding="UTF-8" ?>
<Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" Kod="370" xmlns="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
/2001/XMLSchema-instance">
    <ANode>
        <BNode>
            <CNode>
                <Example>
                    <Name>John</Name>
                    <NO>001</NO>
                </Example>
            </CNode>
        </BNode>
        <ID>1234</ID>
        <Date>2011-10-01</Date>
    </ANode>
    <ANode>
        <BNode>
            <CNode>
                <Example>
                    <Name>Mike</Name>
                    <NO>002</NO>
                </Example>
            </CNode>
        </BNode>
        <ID>5678</ID>
        <Date>2011-03-31</Date>
    </ANode>
</Element>

现在我想读取一个完整的路径,当我得到一个值,比如NO元素,然后我想存储完整的路径NO-&gt; Example-&gt; Cnode-&gt; Bnode-&gt; Anode。请帮忙... 我使用XMLTextReader来读取xml元素和值。如需更多参考,请点击I want to read the xml sub sub sub node name and value

1 个答案:

答案 0 :(得分:0)

使用xml linq,您可以执行以下操作:

var doc = XDocument.Load(@"fileUri");
var paths=doc.Descendants()
             .Where(e=>!(e.HasElements || String.IsNullOrEmpty(e.Value)))
             .Select(e=>e.Name+"->"+
                     String.Join("->",e.Ancestors().Select(a=>a.Name)));