繁体   English   中英

SelectSingleNode,如何使用字符串变量编写xpath查询?

[英]SelectSingleNode, how to write xpath query using string variable?

嗨,我有使用不同名称空间的xml文件(实际上是msbuild文件)

<?xml version="1.0" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup Condition="'$(key)'=='1111'">
          <Key1>Value1</Key1>
          <Key3>Value3</Key3>
    </PropertyGroup>
    <PropertyGroup Condition="'$(key)'=='2222'">
          <Key2>Value2</Key2>
          <Key4>Value4</Key4>
    </PropertyGroup>
</Project>

Iam试图获得“关键”的价值。 但是问题在于子节点(键)是在C#代码中动态确定的。 因此,我不能仅将childname附加到xpath查询中。 但是我有一个具有子节点名称的字符串变量

XmlDocument xml = new XmlDocument();
xml.Load("ref.props");        
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);
nsmgr.AddNamespace("ms", "http://schemas.microsoft.com/developer/msbuild/2003");

XmlNode platform_node

 = xml.SelectSingleNode("/ms:Project/ms:PropertyGroup[contains(@Condition, '1111')]", nsmgr);

string child_node_name = get_name();
XmlNode child = platform_node.SelectSingleNode(???);

然后,在获得正确的属性组之后,应该如何编写xpath查询,以便获得正确的值?

如果您正在寻找子节点"*"可能会起作用。 或者只是通过XmlNode.ChildNodes获取所有子节点并获取ValueInnerText

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM