gpt4 book ai didi

xml - 在根元素中定义 xmlns 时如何解析 xpath

转载 作者:行者123 更新时间:2023-12-03 17:22:28 24 4
gpt4 key购买 nike

以下是我尝试从中提取内容的 xml 示例:

<CPM 
xmlns:nc="http://STUFF1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jx="http://STUFF3"
xmlns:np="http://STUFF4"
xmlns:cj="http://STUFF5"
xsi:schemaLocation="http://STUFF6 STUFF7_STUFF8.xsd"
version="1.0"
key="KEYHERE"
xmlns="http://www.STUFF9.com">

<Header>
<Init>1234</Init>
<Dest>MARS</Dest>
<Control>12345xxx</Control>
</Header>
<Body>
<PM>
<nc:Msg>
<np:EDSection>
<np:EPO>
<jx:ActivityDate>20180101</jx:ActivityDate>

我正在尝试使用 XPATH 提取变量,如下所示:
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns0="pri:vate"
xmlns:nc="http://STUFF1"
xmlns:np="http://STUFF4"
xmlns:jx="http://STUFF3"
xmlns:ea="http://OTHERSTUFF"
xpath-default-namespace="http://www.STUFF9.com">

<xsl:variable name="MYDATE" select="/CPM/Body[1]/PM[1]/nc:Msg[1]/np:EDSection[1]/np:EPO[1]/jx:ActivityDate[1]"/>

问题是我有一个不喜欢 "xpath-default-namespace" 的 java 组件。我宁愿改变 xslt 而不是改变 java 组件。有没有其他方法可以从源 xml 中解析 xpath,该源 xml 定义 xmlns 与根元素中的 url 像这样?

最佳答案

替换 xpath-default-namespace="http://www.STUFF9.com"xmlns:s9="http://www.STUFF9.com"并将 XPath 表达式更改为

/s9:CPM/s9:Body[1]/s9:PM[1]/nc:Msg[1]/np:EDSection[1]/np:EPO[1]/jx:ActivityDate[1]

删除默认命名空间后,您必须定义一个显式命名空间。在这里,我选择了 s9对于这种情况,但任何有效的 QName 都可以。

关于xml - 在根元素中定义 xmlns 时如何解析 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52859385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com