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/flash/4.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_Xmlstarlet - Fatal编程技术网

Xml 具有多个属性的节点的Xpath

Xml 具有多个属性的节点的Xpath,xml,xpath,xmlstarlet,Xml,Xpath,Xmlstarlet,尝试将所有属性值用单引号括起来: xmlstarlet ed --omit-decl -L -u "/project[@xmlns=http://maven.apache.org/POM/4.0.0 and @xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance and @xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4

尝试将所有属性值用单引号括起来:

xmlstarlet ed --omit-decl -L -u "/project[@xmlns=http://maven.apache.org/POM/4.0.0 and @xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance and @xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd]/version" -v 10.10.10 ./file.xml

xmlns
属性是定义。不带冒号的名称空间定义默认名称空间。XPath不支持默认名称空间,因此必须显式引用它。XMLStarlet(1.5.0+)的最新版本将默认名称空间绑定到“3;”,因此可以执行以下操作:

"/project[@xmlns='http://maven.apache.org/POM/4.0.0' and @xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' and @xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd']/version"
您可以像这样显式绑定名称空间:

xmlstarlet ed --omit-decl -L -u "/_:project/_:version" -v 10.10.10 ./file.xml
另见

xmlstarlet ed --omit-decl -L -u "/_:project/_:version" -v 10.10.10 ./file.xml
xmlstarlet ed -N pom=http://maven.apache.org/POM/4.0.0 --omit-decl -L -u "/pom:project/pom:version" -v 10.10.10 ./file.xml