我有一个大的json blob,我想解析并过滤表单中的参数。 经过一些研究后,我决定尝试使用defiantjs,但是在使用XPath时我遇到了问题,因为它会使我的树变得扁平。
我的数据如下:
@Override
public void onPageSelected(int position) {
listeners[beforePagerPosition].onViewPaused();
tabLayout.getTabAt(beforePagerPosition).getIcon().setAlpha(getResources().getInteger(R.integer.tab_unselected_alpha));
beforePagerPosition = position;
tabLayout.getTabAt(position).getIcon().setAlpha(getResources().getInteger(R.integer.tab_selected_alpha));
listeners[position].onViewResumed();
resetMenu();
hideKeyboard();
}
@Override
public void onPageScrollStateChanged(int state) {
}
private void resetMenu() {
if (getSupportFragmentManager() != null) {
ParentFragment parentFragment = (ParentFragment) listeners[viewPager.getCurrentItem()];
FragmentManager fm = parentFragment.getChildFragmentManager();
if (fm != null && fm.getBackStackEntryCount() > 0) {
FragmentManager.BackStackEntry backStackEntry = fm.getBackStackEntryAt(fm.getBackStackEntryCount() - 1);
String str = backStackEntry.getName();
BaseMenuFragment fragment = (BaseMenuFragment) fm.findFragmentByTag(str);
fragment.setHasOptionsMenu(true);
}
}
}
有没有办法搜索ie。一个包含“fgh”的irules节点?在下面的情况下,我将只获得第一项:
<d:item d:mi="36">
<name d:constr="String" d:mi="15">/Vip/myvip</name>
<irules d:mi="23">
<name d:constr="String" d:mi="22">abcde</name>
</irules>
<irules d:mi="25">
<name d:constr="String" d:mi="24">fgh</name>
</irules>
<irules d:mi="27">
<name d:constr="String" d:mi="26">ijkl</name>
</irules>
</d:item>
<d:item d:mi="37">
<name d:constr="String" d:mi="15">myitem2</name>
<irules d:mi="23">
<name d:constr="String" d:mi="22">mnop</name>
</irules>
<irules d:mi="25">
<name d:constr="String" d:mi="24">qrst</name>
</irules>
</d:item>
我确实弄乱了查询,但只能在第一个irules节点(?)上获得一个命中,而不是后续的。
奖金问题:
使用javascript(~12MB)解析大量json数据的任何其他建议?
/帕特里克
答案 0 :(得分:1)
正确这是我最接近的{&#39;
//virtualserver[contains(./irules, "whatIwanttofind")]
&#39; (defiantjs用//启动查询)但是它只返回列表中顶级规则包含的对象&#34; whatIwanttofind&#34;
那是因为contains()
函数只期望一个字符串作为第一个参数。如果./irules
返回多个元素,则仅评估第一个元素。要避免此问题,您可以修改对{0}个元素应用contains()
的XPath:
irules