按属性名称读取XML值

时间:2018-12-05 12:46:36

标签: c# xml xmlnode xml-attribute

<Customer>
    <Type H="General Information" ID="GeneralInfo">
         <Row>
             <C H="Customer Name">Mr. Robert</C>
             <C H="Relation">S/O. John</C>
             <C H="Date of Birth">01/01/1985</C>
        </Row>
    </Type>
    <Type H = "Other Details" ID = "ShareDet">
         <Row>
            <C H = "Address 1">XYZ</C>
            <C H = "Address 2">ABC</C>
        </Row>
    </Type>
</Customer>

我试图从C#以上的XML中读取“罗伯特先生”,但我不能。 我尝试了以下代码:

XmlDocument objXmlMain = new XmlDocument();
objXmlMain.LoadXml("Loading_Above_XMLSTRING");
string test = objXmlMain.SelectSingleNode("Customer/Type/Row/C/@H").Value;

我得到的结果为“ 客户名称”(即属性值)。 我想通过检查属性值“客户名称”来读取名称,并且结果应为“ 罗伯特先生

1 个答案:

答案 0 :(得分:1)

您需要使用:

string test = objXmlMain.SelectSingleNode("Customer/Type/Row/C[@H='Customer Name']").Value;

Customer/Type/Row/C/@H xpath查询选择H属性本身,而.Value返回该属性的文本。