我正在尝试使用DOMXPath来获取XSD文件中的子元素列表,这些子元素是名为' Item'的元素的直接后代。但是,使用下面列出的2个xpath选项,它总是在结果中包括孙子节点以及子节点
欢呼声
$dom = new DOMDocument();
$dom->load('xsdfile.xsd');
$xpath = new DOMXPath($dom);
//$xpath_str = '//xs:element[@name="Item"]/descendant::xs:element';
$xpath_str = '//xs:element[@name="Item"]//xs:element';
$results = $xpath->evaluate($xpath_str);
答案 0 :(得分:1)
在element
下,有complexType
,然后是sequence
,choice
或all
,然后是实际的子元素,因此XPath应为:< / p>
//xs:element[@name="Item"]/xs:complexType/*/xs:element
(*
=任何元素)或
//xs:element[@name="Item"]/*/*/xs:element