Xpath 不使用';我不能生孩子

Xpath 不使用';我不能生孩子,xpath,xml-parsing,html-parsing,Xpath,Xml Parsing,Html Parsing,我试图使用XML从中访问某个元素,但我似乎无法获得它,我也不太明白为什么 <ul class="test1" id="content"> <li class="list"> <p>Insert random text here</p> <div class=&quo

我试图使用XML从中访问某个元素,但我似乎无法获得它,我也不太明白为什么

<ul class="test1" id="content">
                <li class="list">
                    <p>Insert random text here</p>
                        <div class="author">
                            </div>
                </li>
                <li class="list">
                    <p>I need this text here</p>
                </li>
    </ul>

如果您有任何可能的答案,谢谢

问题中发布的HTML代码片段显示两个
p
元素都不包含任何
div
,因此表达式
//p[not(.//div)]
将与这两个
p
匹配。第一个
p
元素
div
(两者共享相同的父元素
li
)的兄弟,而不是父元素或祖先。以下XPath表达式将匹配第二个
p
中的文本节点,而不是第一个中的文本节点:

//ul[contains(@id,"content")]/li[not(div)]/p/text()
简要说明:

  • //ul[包含(@id,“content”)]
    :查找
    ul
    元素,其中
    id
    属性值包含文本“content”
  • /li[not(div)]
    :从此类
    ul
    中查找没有子元素
    div的子元素
    li
    。这将只匹配示例HTML中的end
    li
  • /p/text()
    :从这样的
    li
    ,找到子元素
    p
    ,然后从这样的
    p
    返回子文本节点

解决了!谢谢
//ul[contains(@id,"content")]/li[not(div)]/p/text()