Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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,如果属性包含一个字段资源工作技能 在此示例中,它应该只加载: <Field name="prop_id">100</Field> <Field name="prop_name">Work Skills</Field> 100 工作技能 样本数据: <?xml version="1.0" encoding="UTF-8"?> <properties&

如果
属性
包含一个字段
资源工作技能
在此示例中,它应该只加载:

<Field name="prop_id">100</Field>
<Field name="prop_name">Work Skills</Field>
100
工作技能
样本数据:

<?xml version="1.0" encoding="UTF-8"?>
<properties>
  <property>
    <Field name="prop_id">100</Field>
    <Field name="prop_label">resource_workskills</Field>
    <Field name="prop_entity_type">3</Field>
    <Field name="prop_name">Work Skills</Field>
    <Field name="Property ID">100</Field>
    <Field name="Property Language">1</Field>
    <Field name="Text Entry Identifier">0</Field>
  </property>
  <property>
    <Field name="prop_id">101</Field>
    <Field name="prop_label">resource_capacity_categories</Field>
    <Field name="prop_entity_type">3</Field>
    <Field name="prop_name">Capacity Categories</Field>
    <Field name="Property ID">101</Field>
    <Field name="Property Language">1</Field>
    <Field name="Text Entry Identifier">0</Field>
  </property>
</properties>

100
资源与工作技能
3.
工作技能
100
1.
0
101
资源\容量\类别
3.
容量类别
101
1.
0
我不知道如何处理命名字段的值

谢谢

这个XPath

/properties/property[Field[@name="prop_label" and .="resource_workskills"]]
           /Field[@name='prop_id' or @name='prop_name']
将选择所有
字段
元素,这些元素具有
属性id
属性名称
属性值,这些属性值是
属性
元素的子元素
字段
元素具有
属性标签
属性值和字符串值
“resource\u”

100
工作技能
按要求



这太棒了@kjhughes谢谢!如果我想在条件中使用一个通配符,比如。=“resource_*”,那么我将从resource开始匹配所有的值_

请参见:


另请参见:

这太棒了@kjhughes谢谢!如果我想在条件中使用一个通配符,比如。=“resource_*”这样我就可以匹配所有以resource_*开头的字符了?
<Field name="prop_id">100</Field>
<Field name="prop_name">Work Skills</Field>