如何使用XPath Query在xml节点中添加字符串内容(空节点/附加到现有内容)

时间:2011-05-22 06:24:40

标签: java xml xpath

我有以下xml结构已经可以使用childnodes作为title,desc,symp,diag,treat addinfo等。我想检查addinfo是否包含任何东西,并且还附加一些字符串,如“这是附加信息”。我需要根据疾病标题 - 标题标签检查addifo标签。

<chapter>
  <disease type="Name">
    <title>Name</title>
    <desc>--------------</desc>
    <symp>--------------</symptoms>
    <diag>-------------</diagnosis>
    <treat>-------------</treatment>
    <addinfo></addinfo>
  </disease>
</chapter

&GT;

我正在使用XPath查询根据疾病名称搜索标签的内容。 感谢

2 个答案:

答案 0 :(得分:0)

您可以使用这样的XPath来查看addinfo是否为空://addinfo[not(node())]

更新:

好的,现在我完全迷失了你想要的东西。这听起来像是一个非常简单的问题。您将创建某种给定XML节点的getText()方法,获取与其关联的文本(如果有的话或返回null或空字符串)。然后你会遍历所有的疾病和每种疾病,执行你的逻辑:if( string.isNullOrEmpty(getText(disease, "addinfo")) ) { // do something } - 如果你想检查addinfo是否为空或添加东西等等。

答案 1 :(得分:0)

XPath只能检索文档中的信息,不能修改它。

XQuery可以生成文档的修改副本,但这并不是特别容易,因为您需要明确复制您不想更改的所有部分。

对于生成文档的修改副本,XSLT是更好的选择;或者如果您愿意,可以使用XQuery Update Facility。