在只有我对它的后代有所了解的情况下获取XPATH值
本文关键字:了解 情况下 获取 XPATH 后代 有我 | 更新日期: 2023-09-27 18:15:11
想象一个这样的xml文件:
<Document>
<Tests>
<Test>
<Name>A</Name>
<SubTest>
<Test>
<Name>B</Name>
<Value>100</Value>
</Test>
</SubTest>
</Test>
<Test>
<Name>C</Name>
<SubTest>
<Test>
<Name>D</Name>
<Value>200</Value>
</Test>
</SubTest>
</Test>
</Tests>
</Document>
我使用一种方法来访问B
值,但我也需要获得名称A
,但我现在才知道值B
存在于我的XML文件中(doc
是XmlDocument
):
public class TestData
{
public string Parent {get;set;}
public string Name {get; set;}
public int Value {get;set;}
}
private TestData GetResult(string name)
{
TestData data = new TestData();
data.Name = name;
data.Value =
int.Parse(doc.SelectSingleNode("Document/Tests/Test/SubTest/Test[Name = '" + name + "']/Value").InnerText);
data.Parent = null; //How can I get string A using the above xpath
return data;
}
那么,问题是,我如何在上述方法中访问A
?
您可以使用这个XPath:
Document/Tests/Test[SubTest/Test/Name = 'B']/Name
或:
var nodeTest =
doc.SelectSingleNode("Document/Tests/Test[SubTest/Test/Name = 'B']");
var name = nodeTest.SelectSingleNode("Name").InnerText;
var value = nodeTest.SelectSingleNode("SubTest/Test/Value").InnerText;
下面是读取A的xpath表达式:
/Document/Tests/Test[Subtest/Test/Name = 'B']/Name