作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在浏览文档中的节点列表,一次只能一个节点。
在该处理过程中,我需要使用要处理的节点的局部属性值从更广泛的文档中选择节点。
我希望在单个XPath中表达这一点。
如果首先获得本地属性值,则可以将其插入xpath,但是我不希望这样做,因为我希望Xpath是独立的。
以下文档是这种结构的示例,但仅用于说明。
<root>
<pageGenre>
<page ref="attvalue1"/>
<genre>horror</genre>
</pageGenre>
<pageGenre>
<page ref="attvalue1"/>
<genre>thriller</genre>
</pageGenre>
<pageGenre>
<page ref="attvalue2"/>
<genre>cooking</genre>
</pageGenre>
<book att="attvalue1">
<author>Lovecraft</author>
</book>
<book att="attvalue2">
<author>E.E. Smith</author>
</book>
</root>
att
的值
att
书籍的所有体裁。
./@att
值,然后编写Xpath,它就可以正常工作,但是我不想“知道”这件事需要做,因为我希望XPath列表在不使用任何特殊情况的情况下使用通用调度程序。
self::/@att
,但是正如人们期望的那样,它与
./@att
相同。
最佳答案
您要从单个节点启动XPath查询并对其进行反向引用(以获取att
的值),函数中没有作用。接下来的问题是一种确认。
“我能看到完成您在注释中下面描述的内容的唯一方法是使用LINQ to XML,XPath变量或定义自己的current()函数”。 [.NET XPath starting from a specific element and backreferencing to it]
我们在这里尝试:
//pageGenre/page[@ref = ./@att]/../genre
./@att
选择相对于当前节点的
att
属性,该属性是
<page>
而不是
<book>
。要引用该部分中的
<book>
节点,您需要使用
current()
函数。
att
的存储值。
关于xml - 如何在主文档中找到属性等于当前所选节点的属性值的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21364288/
我是一名优秀的程序员,十分优秀!