Xml 相关元素组的XPath?
我正在尝试获取信息Xml 相关元素组的XPath?,xml,xpath,xpath-2.0,Xml,Xpath,Xpath 2.0,我正在尝试获取信息和相应的所有 这不是一个属性,而是一个名称空间。查找xpath和名称空间 下面是一个至少可以找到“l7:issuername”的快速代码: 找到6个,把它们扔到一个数组中,然后用它们做你想做的事情 祝你好运 正如kjhughes所说,或者你可以这样做 //*[name()='l7:IssuerName' or name()='l7:Name'] 这个XPath /l7:List/l7:Item//*[self::l7:Name or self::l7:IssuerName]
和相应的所有
这不是一个属性,而是一个名称空间。查找xpath和名称空间 下面是一个至少可以找到“l7:issuername”的快速代码: 找到6个,把它们扔到一个数组中,然后用它们做你想做的事情 祝你好运 正如kjhughes所说,或者你可以这样做
//*[name()='l7:IssuerName' or name()='l7:Name']
这个XPath
/l7:List/l7:Item//*[self::l7:Name or self::l7:IssuerName]
将选择
<l7:Name>services.company.int</l7:Name>
<l7:IssuerName>CN=MC Access Management sub CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net</l7:IssuerName>
<l7:IssuerName>CN=Access Management root CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net</l7:IssuerName>
<l7:IssuerName>CN=Access Management root CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net</l7:IssuerName>
<l7:Name>directory-company-com</l7:Name>
<l7:IssuerName>CN=PRD company 3DS1 Issuer Sub CA,OU=company Identity Check Gen 3,O=company,C=US</l7:IssuerName>
<l7:IssuerName>CN=PRD company Identity Check Root CA,OU=company Identity Check Gen 3,O=company,C=US</l7:IssuerName>
<l7:IssuerName>CN=PRD company Identity Check Root CA,OU=company Identity Check Gen 3,O=company,C=US</l7:IssuerName>
services.company.int
CN=MC访问管理子CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net
CN=访问管理根CA,OU=全球信息安全,O=全球公司,DC=公司,DC=网络
CN=访问管理根CA,OU=全球信息安全,O=全球公司,DC=公司,DC=网络
目录公司
CN=珠三角公司3DS1发行人子CA,OU=公司身份检查第三代,O=公司,C=美国
CN=珠三角公司身份检查根CA,OU=公司身份检查第三代,O=公司,C=美国
CN=珠三角公司身份检查根CA,OU=公司身份检查第三代,O=公司,C=美国
我相信这满足了你的要求
信息
和相应的所有
//l7:Name
是否不选择任何内容,而//*[local-Name()=“Name”]
是否选择某个内容?//*[local-Name()=“Name”]是否给出所有名称。但我代表ResourceAnd//l7:Name
之间的Name和对应的IssuerName,不选择任何内容?它也会给出相同的输出。列出所有l7:NameOk,这样就确定它不是名称空间问题。我看到您已经添加了预期的输出。进展良好。请记住,XPath选择。如果您想转换或重新排列您选择的内容,您需要升级到XSLT。感谢您发送Xpath,但我可以单独获得它。但是,我想知道是否可以让列表列出所有名称和IssueNameTestingname()
,以便与某些字符串相等,这是一种糟糕的做法,因为命名空间前缀是不可预测的。不要写[name()='xxxxx']
,而要写[self::xxxxx]
(至少,如果您正在测试元素-属性有点不同)。
//*[name()='l7:IssuerName' or name()='l7:Name']
/l7:List/l7:Item//*[self::l7:Name or self::l7:IssuerName]
<l7:Name>services.company.int</l7:Name>
<l7:IssuerName>CN=MC Access Management sub CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net</l7:IssuerName>
<l7:IssuerName>CN=Access Management root CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net</l7:IssuerName>
<l7:IssuerName>CN=Access Management root CA,OU=Global Information Security,O=company WorldWide,DC=company,DC=net</l7:IssuerName>
<l7:Name>directory-company-com</l7:Name>
<l7:IssuerName>CN=PRD company 3DS1 Issuer Sub CA,OU=company Identity Check Gen 3,O=company,C=US</l7:IssuerName>
<l7:IssuerName>CN=PRD company Identity Check Root CA,OU=company Identity Check Gen 3,O=company,C=US</l7:IssuerName>
<l7:IssuerName>CN=PRD company Identity Check Root CA,OU=company Identity Check Gen 3,O=company,C=US</l7:IssuerName>