xml - 如何在单个 XPath 表达式中执行两个函数?
问题描述
是否可以将这两个表达式组合成一个表达式,以便它会选择之前的子字符串并翻译输出字符串?
translate(//LogEvents/LogEvent[@StatusCode=2][1]//Asset/@Title, 'üäöõÜÄÖÕ', 'uaooUAOO')
substring-before(//LogEvents/LogEvent[@StatusCode=2][1]//Asset/@Title, '[')
我将它用于我们的广播播放系统正在播放的导出,以使其对 RDS 可读并消除版本信息等。
解决方案
你可以做
substring-before(translate(//LogEvents/LogEvent[@StatusCode=2][1]//Asset/@Title, 'üäöõÜÄÖÕ', 'uaooUAOO'), '[')
在 XPath 3.1 中,您可以使用箭头运算符,这使得它更具可读性:
//LogEvents/LogEvent[@StatusCode=2][1]//Asset/@Title =>
translate('üäöõÜÄÖÕ', 'uaooUAOO') =>
substring-before('[')
推荐阅读
- android-recyclerview - 使用 Recyclerview 在 Android 聊天应用中自动滚动
- jquery - 如何在 JSP 中获取输入值?
- excel - 如何使用 if 条件在宏中修复
- linux-kernel - 如何在 bitbake 附加文件中设置路径?
- python - solvePnP 结果与预期结果相差太大(Python、OpenCV)
- xamarin.forms - 如何保存文件以供用户查看?
- c++ - 在 Mac Netbeans 11 上编译 C++ 时出现重复符号
- c# - 如何在 iTextSharp PDF 中使用 WriteSelectedRows?
- android - 如何更改节点在平面中的位置?
- c# - UWP:在一个视图中绑定用户控件的多个副本