如何将简单的引用放在concat - Xpath 1.0中

时间:2015-03-15 10:34:30

标签: xml xpath

所以我想创建这个字符串:

insert into TABLE values(651665, 'c e d b f a i');

我已经设法用Xpath创建这个字符串:

concat('insert into TABLE values(', //OneNode/@id, ', `', //myNode, '`);')

这给了我:

insert into TABLE values(651665, ` c e d b f a i `);

但现在我想替换`by'。有没有办法在Xpath 1.0中做到这一点?

1 个答案:

答案 0 :(得分:2)

包装易读:

concat(
  'insert into TABLE values(', 
  "'", 
  //OneNode/@id, 
  ', ',
  //myNode, 
  "'",
  ');'
)

XPath字符串可以以"'开头,并且它们不能包含其分隔符,即没有字符串转义机制。

这意味着上面的内容是有效的XPath,但是需要额外的转义才能使这个有效的XML内部属性(如XSLT <xsl:value-of select="..." />):

<xsl:value-of select="
concat(
  'insert into TABLE values(', 
  &quot;'&quot;, 
  //OneNode/@id, 
  ', ',
  //myNode, 
  &quot;'&quot;,
  ');'
)
" />