我的XPath/XML有什么问题(&;#39;)? [英] What's wrong with my XPath/XML?
本文介绍了我的XPath/XML有什么问题(&;#39;)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在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有什么问题(&;#39;)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文