我正在尝试学习xpath.我查看了这里的其他contains()示例,但没有使用AND运算符.我不能让这个工作:
//ul[@class='featureList' and contains(li, 'Model')]
Run Code Online (Sandbox Code Playgroud)
上:
...
<ul class="featureList">
<li><b>Type:</b> Clip Fan</li><li><b>Feature:</b> Air Moved: 65 ft.
Amps: 1.1
Clip: Grips any surface up to 1.63"
Plug: 3 prong grounded plug on heavy duty model
Usage: Garage, Workshop, Dorm, Work-out room, Deck, Office & more.</li><li><b>Speed Setting:</b> 2 speeds</li><li><b>Color:</b> Black</li><li><b>Power Consumption:</b> 62 W</li><li><b>Height:</b> 14.5"</li><li><b>Width:</b> Grill Diameter: 9.5"</li><li><b>Length:</b> 11.5"</li>
<li><b>Model #: </b>CR1-0081-06</li>
<li><b>Item #: </b>N82E16896817007</li>
<li><b>Return Policy: </b></li>
</ul>
...
Run Code Online (Sandbox Code Playgroud) 如何使用xslt在以下xml中获取attribute1(blah)的值:
<name attribute1="blah" attribute2="blahblah">
</name>
Run Code Online (Sandbox Code Playgroud) 我该怎么做XPath:
//bookstore/book/title or //bookstore/city/zipcode/title
Run Code Online (Sandbox Code Playgroud)
只是//title不行,因为我也有//bookstore/magazine/title
ps我看了很多或者例子,但主要是属性或单节点结构.
我需要获取子节点"标题50"的父节点
目前我只使用
//*[title="50"]
Run Code Online (Sandbox Code Playgroud)
我怎么能得到它的父母?结果应该是store节点.
<?xml version="1.0" encoding="utf-8"?>
<d:data xmlns:d="defiant-namespace" d:mi="23">
<store d:mi="22">
<book price="12.99" d:price="Number" d:mi="4">
<title d:constr="String" d:mi="1">Sword of Honour</title>
<category d:constr="String" d:mi="2">fiction</category>
<author d:constr="String" d:mi="3">Evelyn Waugh</author>
</book>
<book price="8.99" d:price="Number" d:mi="9">
<title d:constr="String" d:mi="5">Moby Dick</title>
<category d:constr="String" d:mi="6">fiction</category>
<author d:constr="String" d:mi="7">Herman Melville</author>
<isbn d:constr="String" d:mi="8">0-553-21311-3</isbn>
</book>
<book price="8.95" d:price="Number" d:mi="13">
<title d:constr="String" d:mi="10">50</title>
<category d:constr="String" d:mi="11">reference</category>
<author d:constr="String" d:mi="12">Nigel Rees</author>
</book>
<book price="22.99" d:price="Number" d:mi="18">
<title d:constr="String" d:mi="14">The Lord of the Rings</title>
<category d:constr="String" d:mi="15">fiction</category>
<author …Run Code Online (Sandbox Code Playgroud) 理想情况下,我希望能够做到的是:
cat xhtmlfile.xhtml |
getElementViaXPath --path='/html/head/title' |
sed -e 's%(^<title>|</title>$)%%g' > titleOfXHTMLPage.txt
Run Code Online (Sandbox Code Playgroud) 我试图找到我的xml中的最后一个元素,看起来像
<list>
<element name="A" />
<element name="B" >
<element name="C" />
<element name="D" >
<element name="D" />
<element name="E" />
<element name="F" />
<element name="G" />
</element>
<element name="H" />
<element name="I" />
</list>
Run Code Online (Sandbox Code Playgroud)
我需要获得某种反向菜单,其中当前元素和父元素被突出显示为"活动",而兄弟节点则显示为"非活动".相反,结果我只有当我想点击"D"元素时才有一个凌乱的树.
双D元素是我的问题.当我使用
select="//element[@name='D'][last()]"或select="//element[@name='D' and last()]"(顺便哪一个是正确的?)第一次出现 D元素时(调试器显示).这是xsl
<xsl:template match="list">
<xsl:apply-templates select="//navelement[@name = 'D'][last()]" mode="active"/>
</xsl:template>
<xsl:template match="element">
<ul class="menu">
<xsl:apply-templates select="preceding-sibling::node()" mode="inactive"/>
<li><a>....</a></li>
<xsl:apply-templates select="following-sibling::node()" mode="inactive"/>
</ul>
<xsl:apply-templates select="parent::element" mode="active"/>
</xsl:template>
<xsl:template match="element" mode="inactive">
<li><a>....</a></li>
</xsl:template>
Run Code Online (Sandbox Code Playgroud) 以下问题:
<div id="id-74385" class="guest clearfix" style="z-index: 999;">
Run Code Online (Sandbox Code Playgroud)
如上所述,
如果我想要一个带有id和class检查的XPath表达式,我们可以用'和'条件LIKE来做它:
//div[@id='id-74385'] and div[@class='guest clearfix']
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?我的执行在这里失败了......请帮忙!
有一个HTML文件(我不控制其内容)有几个input元素都具有相同的固定id属性"search_query".文件的内容可以更改,但我知道我总是希望获得input带有id属性的第二个元素"search_query".
我需要一个XPath表达式来执行此操作.我尝试//input[@id="search_query"][2]但是这不起作用.以下是此查询失败的示例XML字符串:
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
请记住,上面只是一个示例,其他HTML代码可能完全不同,input元素可以出现在任何地方,没有一致的文档结构(除了我保证总会有至少两个inputid属性为"search_query").
什么是正确的XPath表达式?
鉴于这种简化的数据格式:
<a>
<b>
<c>C1</c>
<d>D1</d>
<e>E1</e>
<f>don't select this one</f>
</b>
<b>
<c>C2</c>
<d>D2</d>
<e>E1</e>
<g>don't select me</g>
</b>
<c>not this one</c>
<d>nor this one</d>
<e>definitely not this one</e>
</a>
Run Code Online (Sandbox Code Playgroud)
你会如何选择所有元素的Cs,Ds和Es B?
基本上,像:
a/b/(c|d|e)
Run Code Online (Sandbox Code Playgroud)
在我自己的情况,而不是只a/b/,查询导致到选择那些C,D,E节点其实是相当复杂的,所以我想避免这样做:
a/b/c|a/b/d|a/b/e
Run Code Online (Sandbox Code Playgroud)
这可能吗?
你如何在XSL中进行大小写转换?
<xsl:variable name="upper">UPPER CASE</xsl:variable>
<xsl:variable name="lower" select="???"/>
Run Code Online (Sandbox Code Playgroud)