đó là những nút có một thuộc tính nơi tên thuộc tính bắt đầu với val
Sử dụng:
//div[@*[starts-with(name(), 'val')]]
Lựa chọn này bất kỳ phần tử div
nào trong tài liệu, có ít nhất một thuộc tính, có tên bắt đầu bằng chuỗi "val"
.
XSLT - dựa xác minh:
chuyển đổi này:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="//div[@*[starts-with(name(), 'val')]]"/>
</xsl:template>
</xsl:stylesheet>
khi áp dụng về vấn đề này tài liệu XML (được sản xuất từ các đoạn XML cung cấp):
<html>
<div val1="q">a</div>
<div val2="w">b</div>
<div val3="e">c</div>
<div some="r">d</div>
<div thing="t">f</div>
<div name="y">g</div>
</html>
lựa chọn và xuất ra các nút mong muốn:
<div val1="q">a</div>
<div val2="w">b</div>
<div val3="e">c</div>
Nguồn
2011-11-29 14:33:35
Tôi cần lấy các phần tử div có các thuộc tính cụ thể. Không phải thuộc tính và giá trị của chúng ở dạng '// div/@ * [bắt đầu bằng (name (.), 'Val')]' – dom1nga
using ** nokogiri ** i got: '"
Nó hoạt động với '// div/@ * [starts-with (name (.), 'Val')]/..' Great thx – dom1nga