簡體   English   中英

xPath 表達式創建或修改節點

[英]xPath expression create or modify a node

我想了解如何在簡單的 XML 文件中創建或修改節點。

以下是 XML 文件:

<?xml version = "1.0"?>
    <myRootNode>
        <myNode a="P" b="Q" c="R">
            <subNode id= "1">
                <x>more text</x>
                <y>some more</y>
            </subNode>
            <subNode id="2">
                <x>blah</x>
                <y><blah blah</y>
            </subNode>
        </myNode>
        <myNode a="S" b="T" c="U">
            <subNode id= "1">
                <x>some more text</x>
                <y>even more</y>
            </subNode>
            <subNode id="2">
                <x>abcdefg</x>
                <y>hijklmno</y>
            </subNode>
        </myNode>
    </myRootNode>

我想知道如何編輯節點的內部文本。 例如:編輯通過評估表達式實現的節點的內部文本:

/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[@id='1']/x

我還想知道如何使用純 xPath 插入節點:

<subNode id="3">
    <x>pqrst</x>
    <y>uvxyz</y>
</subNode>

在通過評估表達式實現的節點之后:

/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[@id="2"]

如果可能,請提供 Java 代碼。 謝謝你。

不幸的是,XPath 本身不能用於修改 XML 文檔。 如果可能,請嘗試使用http://xmlstar.sourceforge.net/docs.php來修改您的 xml。

<subNode id="3">
    <x>pqrst</x>
    <y>uvxyz</y>
</subNode>

如何插入這個新節點:

xml ed -i "/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode" -t elem -n "subNode" example.xml
xml ed -i "/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[1]" -t attr -n "id=3" example.xml
xml ed -i "/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[@id='3']" -t elem -n "x" example.xml
xml ed -i "/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[@id='3']/x" -t text -n "pqrst" example.xml
xml ed -i "/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[@id='3']" -t elem -n "y" example.xml
xml ed -i "/myRootNode/myNode[@a='P' and @b='Q' and @c='R']/subNode[@id='3']/y" -t text -n "uvxyz" example.xml

有很多命令行選項:

  • 移動
  • 刪除
  • 改名
  • 更新
  • 附加
  • 插入 ...

XQuery 是您的朋友:

insert node <subNode id="3"><x>pqrst</x><y>uvxyz</y></subNode> into //myRootNode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM