我有以下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查询根据疾病名称搜索标签的内容。 感谢
答案 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。