我是n00b,但最近我一直在玩解析一些XML数据.我实际上在这个网站上发现了一个不错的功能,我可以通过以下方式访问具有特定属性的特定节点:docFoo.SelectSingleNode("foo/bar/baz [@ name ='qux']);但是,数据看起来像这个:
<saving-throws>
<saving-throw>
<name>Fortitude</name>
<abbr>Fort</abbr>
<ability>Con</ability>
<modifiers>
<modifier name="base" value="2"/>
<modifier name="ability" value="5"/>
<modifier name="magic" value="0"/>
<modifier name="feat" value="0"/>
<modifier name="race" value="0"/>
<modifier name="familar" value="0"/>
<modifier name="feature" value="0"/>
<modifier name="user" value="0"/>
<modifier name="misc" value="0"/>
</modifiers>
</saving-throw>
<saving-throw>
<name>Reflex</name>
<abbr>Ref</abbr>
<ability>Dex</ability>
<modifiers>
<modifier name="base" value="6"/>
<modifier name="ability" value="1"/>
<modifier name="magic" value="0"/>
<modifier name="feat" value="0"/>
<modifier name="race" value="0"/>
<modifier name="familar" value="0"/>
<modifier name="feature" value="0"/>
<modifier name="user" value="0"/>
<modifier name="misc" value="0"/>
</modifiers>
</saving-throw>
Run Code Online (Sandbox Code Playgroud)
我希望能够获得名称为base的节点,但是对于每个节点投掷节点,其中childnode"abbr"= xx.我可以在一个SelectSingleNode中以某种方式做到这一点,或者我将不得不停止豁免检定并走过树的其余部分?
这应该给你你想要的东西:
SelectSingleNode("/saving-throws/saving-throw[abbr = 'Fort']/modifiers/modifier[@name='base']");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10063 次 |
| 最近记录: |