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
xmlstarlet:如何省略具有特定属性的元素?_Xml_Xpath_Xmlstarlet - Fatal编程技术网

xmlstarlet:如何省略具有特定属性的元素?

xmlstarlet:如何省略具有特定属性的元素?,xml,xpath,xmlstarlet,Xml,Xpath,Xmlstarlet,我希望检索某些XML元素,但前提是它们不包含starlet的特定属性 下面是文件myFile.XML中的一个XML示例: 这导致 1 Foo1 二○○二 但预期的结果是 1 Foo1 以何种方式增强此选择以省略每个具有子类型的主语?尝试将谓词[非(@subtype)]添加到匹配项中 -m”//subject[@type='someType'][非(@subtype)]” <?xml version="1.0"?> <document>

我希望检索某些XML元素,但前提是它们不包含starlet的特定属性

下面是文件myFile.XML中的一个XML示例:

这导致

1 Foo1

二○○二

但预期的结果是

1 Foo1


以何种方式增强此选择以省略每个具有子类型的主语?

尝试将谓词
[非(@subtype)]
添加到匹配项中

-m”//subject[@type='someType'][非(@subtype)]”
<?xml version="1.0"?>
<document>
        <classInfo>
                <subjects>
                        <subject id="1" type="someType">
                                <subjectname>Foo1</subjectname>
                        </subject>
                        <subject id="2" subtype="someSubtype" type="someType">
                                <subjectname>Foo2</subjectname>
                        </subject>
                </subjects>
        </classInfo>
</document>
xmlstarlet sel -T -t -m "//subject[@type='someType']" -v '@id' -o $'\t' -v 'subjectname[text()]' -nl myFile.xml