Xml 如何将XPath转换为命名空间与其祖先不同的属性';s
我试图查询这个XML文件第11行的codebase属性Xml 如何将XPath转换为命名空间与其祖先不同的属性';s,xml,xpath,Xml,Xpath,我试图查询这个XML文件第11行的codebase属性 <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:sc
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="VcilApp.application" version="0.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="VCIL" asmv2:product="VcilApp" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" minimumRequiredVersion="0.0.0.0" co.v1:createDesktopShortcut="true">
<subscription>
<update>
<beforeApplicationStartup />
</update>
</subscription>
<deploymentProvider codebase="file://vandc/vcfileshare/VC Apps/Dialler/VcilApp.application" />
</deployment>
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="Application Files\VcilApp_3_0_9_2705\VcilApp.exe.manifest" size="26738">
<assemblyIdentity name="VcilApp.exe" version="0.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>7ikkD3Ls5FCfLulntbYd54jZwk/4L5dnNZ4rGBZELB8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
</asmv1:assembly>
7ikkD3Ls5FCfLulntbYd54jZwk/4L5dnNZ4rGBZELB8=
它需要类似于/assembly/deployment/deploymentProvider/@codebase,但需要考虑名称空间前缀。deployment元素可能导致了问题,因为它不像它的祖先一样位于asmv1命名空间中
有人能为codebase属性提供xpath吗?您没有告诉我们将在什么上下文中使用xpath表达式的详细信息,但通常:
asmv1
映射到urn:schemas microsoft com:asm.v1
asmv2
映射到urn:schemas microsoft com:asm.v2
/asmv1:assembly/asmv2:deployment/asmv2:deploymentProvider/@codebase
如果您可以制作一个更具可读性的XML示例来演示这个问题,那就太好了。@Lev很抱歉,我很难用SO编辑器来实现这一点。我在这里上传了它,您必须将xml中的所有名称空间添加到样式表中,然后使用分配给它们的前缀(可能不同于xml)。