我正在使用XQuery讀取XML文件,並希望插入多個節點/元素並生成新的XML文件。我怎樣才能做到這一點?我試過使用replace()函數,但是,它看起來像我調用doc()加載我的文檔時,我所有的XML標記都被剝離。所以如果我的XML標籤被刪除,調用replace()並不是什麼好事。XQuery:插入節點
任何幫助?我可以使用其他技術嗎?
我正在使用XQuery讀取XML文件,並希望插入多個節點/元素並生成新的XML文件。我怎樣才能做到這一點?我試過使用replace()函數,但是,它看起來像我調用doc()加載我的文檔時,我所有的XML標記都被剝離。所以如果我的XML標籤被刪除,調用replace()並不是什麼好事。XQuery:插入節點
任何幫助?我可以使用其他技術嗎?
replace()是一個字符串操作,所以在替換之前XML將被轉換爲字符串。
創建原始文件的修改副本,您可以修改恆等變換遞歸地複製原始的文件中插入在需要的新節點其中 - 看到XQuery Wikibook
文章或者,如果該文件是在一個XML數據庫(如eXist),您可以使用更新操作來原位插入元素。
的擴展XQuery語言允許更新 - 在XQuery更新設施 - 存在允許修改文件。
插入節點如下:
insert node <foo>bar</foo>
into /bar//baz[id='qux']
在其他引擎,這是supported by BaseX。
使用XQuery腳本就可以這樣寫程序:
variable $stores := doc("stores.xml")/stores;
insert node element store {
element store-number { 4 },
element state { "CA" }
} into $stores;
$stores
你可以嘗試這樣的例子住在http://www.zorba-xquery.com/html/demo#vpshT+pVURyQSCEOKrFBrF0jyGY=
我不清楚這個答案的哪一部分取決於XQSX而不是XQUF(它作爲先決條件捆綁在一起)。 – 2013-08-28 14:08:35
你有使用XQuery插入節點? – 2010-05-24 23:16:29
優選地。你會建議什麼? – CoolGravatar 2010-05-24 23:34:52
瞭解您正在使用的XQuery實現將會很有用。 – tboerman 2010-05-24 23:29:57