Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath如何处理元素和属性文本中的逗号?_Xml_Xpath - Fatal编程技术网

Xml XPath如何处理元素和属性文本中的逗号?

Xml XPath如何处理元素和属性文本中的逗号?,xml,xpath,Xml,Xpath,我使用commons配置从我自己设计的XML文件中读取SQL查询,下面是两个在配置文件中查询的稍有不同的示例: <query name="authenticateAccount" type="function"> <sql> { ? = call account_authenticate(?, ?) } <parameter name="retun" type="java.sql.Types.BOOLEAN" directio

我使用commons配置从我自己设计的XML文件中读取SQL查询,下面是两个在配置文件中查询的稍有不同的示例:

<query name="authenticateAccount" type="function">
    <sql>
        { ? = call account_authenticate(?, ?) }
        <parameter name="retun" type="java.sql.Types.BOOLEAN" direction="out" index="1" />
        <parameter name="supplied_email" type="java.lang.String" direction="in" index="2" />
        <parameter name="supplied_pw" type="java.lang.String" direction="in" index="3" />
    </sql>
</query>

<query name="authenticateAccount" type="function">
    <sql text="{ ? = call account_authenticate(?, ?) }">
        <parameter name="retun" type="java.sql.Types.BOOLEAN" direction="out" index="1" />
        <parameter name="supplied_email" type="java.lang.String" direction="in" index="2" />
        <parameter name="supplied_pw" type="java.lang.String" direction="in" index="3" />
    </sql>
</query>
这些XPath表达式读取查询文本,直到但不包括第一个逗号:

{ ? = call account_authenticate(?
是显示用XPath表达式读入的文本时看到的内容


我尝试在谷歌上搜索XML中XPath表达式和逗号的信息,但没有发现任何有用的信息。为什么读取的文本没有超过第一个逗号?

逗号在元素的文本或属性值中是完全合法的,XPath应该在两种情况下选择整个字符串而不拆分它,这表明主机环境中存在问题

实际上,文档中说逗号在分层配置中用作默认分隔符:

可以使用分隔符以简短形式定义属性列表 字符(默认情况下为逗号)。在本例中 buttons.name属性有三个值OK、Cancel和Help,因此 使用getList()方法查询。这也适用于属性。 使用AbstractConfiguration的静态setDefaultDelimiter()方法 您可以全局定义不同的分隔符或-by 将分隔符设置为0-完全禁用此机制。 在分隔符字符之前放置反斜杠将对其进行转义。这 在numberFormat元素的pattern属性中演示

来源:


该文档还有一节解释了为什么这个功能可能是一个错误的决定,并包含了关于禁用它的更具体的细节。我建议阅读全文。

逗号在元素的文本或属性值中是完全合法的,XPath应该在两种情况下都选择整个字符串而不拆分它,这表明主机环境中存在问题

实际上,文档中说逗号在分层配置中用作默认分隔符:

可以使用分隔符以简短形式定义属性列表 字符(默认情况下为逗号)。在本例中 buttons.name属性有三个值OK、Cancel和Help,因此 使用getList()方法查询。这也适用于属性。 使用AbstractConfiguration的静态setDefaultDelimiter()方法 您可以全局定义不同的分隔符或-by 将分隔符设置为0-完全禁用此机制。 在分隔符字符之前放置反斜杠将对其进行转义。这 在numberFormat元素的pattern属性中演示

来源:


该文档还有一节解释了为什么这个功能可能是一个错误的决定,并包含了关于禁用它的更具体的细节。我建议阅读全文。

第一个xml看起来很可疑,第二个(
/sql/@text
)应该很难解析,可能是您使用的解析器有问题第一个xml看起来很可疑,第二个(
/sql/@text
)应该很难解析,可能是您使用的解析器有问题,谢谢。我想我没有想到检查commons配置文档,因为我希望它依赖于XPath。究竟为什么需要像getList()这样的工具来解析结构化文档中的CSV?如果数据是一个列表,那么制作一个类似列表的结构!文档似乎过时了:静态方法是AbstractConfiguration.setDefaultListDelimiter(char),我不确定他们建议如何使用char参数将任何内容设置为0-使用“0”实际上会在字符“0”上对列表进行分隔。非常好,谢谢。我想我没有想到检查commons配置文档,因为我希望它依赖于XPath。究竟为什么需要像getList()这样的工具来解析结构化文档中的CSV?如果数据是一个列表,那么制作一个类似列表的结构!文档似乎过时了:静态方法是AbstractConfiguration.setDefaultListDelimiter(char),我不确定他们建议如何使用char参数将任何内容设置为0-使用“0”实际上会在字符“0”上分隔列表。
{ ? = call account_authenticate(?