這裏一個新的XML元素
一個開放的XML文檔中替換
元素是XML文檔的樣本之前,我跑我的XQuery:
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml">
<w:body>
...
<w:p w:rsidR="00BB265E" w:rsidRDefault="00BB265E">
<w:pPr>
<w:pStyle w:val="DefaultText"/>
<w:ind w:left="720" w:hanging="720"/>
</w:pPr>
<w:r>
<w:t>1.7</w:t>
</w:r>
<w:r>
**<w:tab/>**
</w:r>
<w:r w:rsidRPr="001C1D1B">
<w:rPr>
<w:shd w:val="clear" w:color="auto" w:fill="FABF8F"/>
</w:rPr>
<w:t>Member means any person who is enrolled in</w:t>
</w:r>
...
下面是一些我嘗試了XQuery查詢運行:
查詢1
UPDATE XML_TORTEST
SET XMLDOC = updateXML(XMLDOC,'declare namespace w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"; /w:document/w:body/w:p/w:r/w:tab',
XMLType('<w:t> </w:t>'))
WHERE XML_TORTEST_ID = 1
AND XMLExists('$p/w:document/w:body/w:p/w:r/w:tab'
PASSING XMLDOC AS "p");
這給出了這樣的錯誤:
SQL錯誤:ORA-31013:無效的XPATH表達式 31013. 00000 - 「無效的XPATH表達式」 *原因:傳遞給函數的XPATH表達式無效。 *操作:檢查xpath表達式是否有可能的語法錯誤。我想與使用XQuery
查詢2 - 工作,但XML輸出不正確(不是真的)
UPDATE XML_TORTEST po
SET po.XMLDOC =
XMLQuery('declare namespace w="http://schemas.openxmlformats.org/wordprocessingml/2006/main";
copy $i := $p1
modify
(
for $j in $i/w:document/w:body/w:p/w:r/w:tab
let $newn := ''<w:t> </w:t>''
return replace node $j with $newn)
return $i' PASSING po.XMLDOC AS "p1"
RETURNING CONTENT)
WHERE XML_TORTEST_ID = 1
AND XMLExists('declare namespace w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"; $p/w:document/w:body/w:p/w:r/w:tab'
PASSING po.XMLDOC AS "p");
下面是示例XML後,我跑了查詢2:
<w:p w:rsidR="00BB265E" w:rsidRDefault="00BB265E">
<w:pPr>
<w:pStyle w:val="DefaultText"/>
<w:ind w:left="720" w:hanging="720"/>
</w:pPr>
<w:r>
<w:t>1.7</w:t>
</w:r>
**<w:r><w:t> </w:t></w:r>**
<w:r w:rsidRPr="001C1D1B">
<w:rPr>
<w:shd w:val="clear" w:color="auto" w:fill="FABF8F"/>
</w:rPr>
<w:t>Member means any person who is enrolled in</w:t>
</w:r>
....
任何幫助的<w:t> </w:t>
轉換到<w:t> </w:t>
表示讚賞。
如果我刪除了',改變$ newn:= 的 被替換爲沒有。 –
tstorli