我需要在XML文档中选择一个精确值为“RM”的字符串。
以下是我的文档示例。请注意,其他节点的结构和值不是永久性的,因此我无法使用相对位置来帮助我。
?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="XSLT.xsl"?>
<document xmlns="http://www.scansoft.com/omnipage/xml/ssdoc-schema3.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<page ocr-vers="OmniPageCSDK18" app-vers="OmniPage 19">
<description>
<source file="C:\Users\User\Documents\OCR\Unprocessed\7740412639.pdf" dpix="300" dpiy="300" sizex="2480" sizey="3509"/>
<theoreticalPage size="A4" marginLeft="1440" marginTop="0" marginRight="1440" marginBottom="1440" offsetX="-2" offsetY="-2" width="11918" height="16854"/>
</description>
<body>
<dd l="87" t="322" r="9667" b="16536">
<dd l="115" t="322" r="9667" b="16536">
<picture l="115" t="322" r="9667" b="16536" alignment="left">
</picture>
</dd>
<dd l="7205" t="1166" r="7366" b="1392">
<para l="7234" t="1171" r="7334" b="1392" alignment="left" spaceBefore="29" spaceAfter="24" lsp="exactly" lspExact="100" language="en">
<ln l="7234" t="1171" r="7334" b="1392" baseLine="1319" underlined="none" subsuperscript="none" fontSize="700" fontFace="Times New Roman" fontFamily="roman" fontPitch="variable" spacing="-40">
<wd l="7234" t="1171" r="7334" b="1392">ARMARMRM</wd>
</ln>
</para>
</dd>
<dd l="6859" t="1114" r="7020" b="1426">
<para l="6888" t="1118" r="6989" b="1426" alignment="left" spaceBefore="29" spaceAfter="23" lsp="exactly" lspExact="101" language="en">
<ln l="6888" t="1118" r="6989" b="1426" baseLine="1307" underlined="none" subsuperscript="none" fontSize="700" fontFace="Times New Roman" fontFamily="roman" fontPitch="variable" spacing="-31">
<wd l="6888" t="1118" r="6989" b="1426">RM</wd>
</ln>
</para>
</dd>
</dd>
</body>
</page>
</document>
我尝试使用contains
并确保该值为NaN。我也研究了如何使用matches
并查看了正则表达式,尽管这显然只在XSLT 2中可用。
在XSLT中有没有办法做到这一点?如果是这样,怎么样?
澄清 当我说 请注意,其他节点的结构和值不是永久性的我的意思是您不能使用Xpath导航到节点,因为该Xpath可以更改。
答案 0 :(得分:0)
以下选择仅包含 字母“RM”的字符串:
//ss:wd[. = 'RM']