我的XPath/XML有什么问题(')? [英] What's wrong with my XPath/XML?

查看:28
本文介绍了我的XPath/XML有什么问题(')?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在this xml上尝试了一个非常基本的XPath(如下所示),但是没有找到任何东西。 我同时尝试.NET和this website,而像//PropertyGroup/PropertyGroup//MSBuildCommunityTasksPath这样的XPath根本不适合我(它们进行了编译,但返回零结果)。

源XML:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <!-- $Id: FxCop.proj 114 2006-03-14 06:32:46Z pwelter34 $ -->
    <PropertyGroup>
        <MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)MSBuild.Community.TasksinDebug</MSBuildCommunityTasksPath>
    </PropertyGroup>
    <Import
        Project="$(MSBuildProjectDirectory)MSBuild.Community.TasksMSBuild.Community.Tasks.Targets" />
    <Target Name="DoFxCop">
        <FxCop TargetAssemblies="$(MSBuildCommunityTasksPath)MSBuild.Community.Tasks.dll"
            RuleLibraries="@(FxCopRuleAssemblies)" 
            AnalysisReportFileName="Test.html"
            DependencyDirectories="$(MSBuildCommunityTasksPath)" 
            FailOnError="True"
            ApplyOutXsl="True"
            OutputXslFileName="C:Program FilesMicrosoft FxCop 1.32XmlFxCopReport.xsl" />
    </Target>
</Project>

推荐答案

您可以在代码中添加名称空间等等,但是您可以有效地通配符名称空间。尝试以下XPath习惯用法。

//*[local-name()='PropertyGroup']
//*[local-name()='MSBuildCommunityTasksPath']

name()通常也有效,如:

//*[name()='PropertyGroup']
//*[name()='MSBuildCommunityTasksPath']

编辑:名称空间很棒我并不是说它们不重要,但是在拼凑原型代码、一次性桌面工具、尝试XSLT等时,使用通配符很方便。权衡您对便利性的需求与手头任务的可接受风险。仅供参考,如果需要,您还可以剥离或重新分配命名空间。

这篇关于我的XPath/XML有什么问题(&amp;#39;)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆