我必须在这个xml中设置“count”属性的值:
<?xml version="1.0" encoding="UTF-8"?>
<task>
<trigger count="myCount" interval="myInterval"/>
<property name="myName" value="myValue"/>
<property name="mySecondName"value="mySecondValue">
</task>
我想使用这样的代码(VTDXML库)使用“Foo”更改myCount值:
String count = "Foo";
if (vg.parseFile("C:\\Users\\_myPath_\\myFile.xml", true)) {
VTDNav vn = vg.getNav();
ap.bind(vn);
xm.bind(vn);
ap.selectXPath("/*[name()='task']/*[name()='trigger']");
int i=0;
while((i=ap.evalXPath())!=-1){
xm.insertAfterHead(count);
}
xm.output("C:\\Users\\_myPath_\\myFileWithFoo.xml");
System.out.println(vg);
}
这样我反而获得了
<trigger count="myCount" interval="myInterval">Foo</trigger>
那不是我的目标因为我想要的是
<trigger count="Foo" interval="myInterval"/>
您的xpath应该是/task/trigger/@count
更改属性值的语句是xmlModifier。updateToken(1)
下面是一个不使用名称空间的示例。。。
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import com.ximpleware.*;
public class updateAttrVal2 {
public static void main(String[] s) throws VTDException,UnsupportedEncodingException,IOException{
VTDGen vg = new VTDGen();
String xml="<task xmlns='ns1' xmlns:abc='ns2'><abc:trigger count=\"myCount\" interval=\"myInterval\"/></task>";
vg.setDoc(xml.getBytes());
vg.parse(false);
VTDNav vn=vg.getNav();
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm = new XMLModifier(vn);
ap.selectXPath("/task/trigger/@count");
int i=0;
while((i=ap.evalXPath())!=-1){
xm.updateToken(i+1, "Count");
}
XMLByteOutputStream xms = new XMLByteOutputStream(xm.getUpdatedDocumentSize());
xm.output(xms);
System.out.println(xms.toString());
}
}
我发现这个解决方案适用于更改“计数”和“间隔”的内容:
String count= "Foo";
String interval= "Dummy";
String attribute = " count=\""+ foo + "\" interval=\""+ interval+"\"";
if (vg.parseFile("C:\\Users\\_myPath_\\myFile.xml", true)) {
VTDNav vn = vg.getNav();
ap.bind(vn);
xm.bind(vn);
ap.selectXPath("/*[name()='task']/*[name()='trigger']");
int i=0;
while((i=ap.evalXPath())!=-1){
xm.insertAttribute(attribute);
}
xm.output("C:\\Users\\_myPath_\\myFileWithFoo.xml");
System.out.println(vg+attribute);
}
结果是:
<trigger count="Foo" interval="Dummy" />
我使用了将我的字符串附加到节点名称(触发器)的插入属性方法。
我知道这是一个可怕的解决方案,但它工作正常。
我是Selenium的新手,需要能够使用属性和文本对以下元素进行xpath。 我正在使用 但我还需要它带有属性,以便将其缩小到单个元素。
问题内容: 有没有一种方法可以使用jQuery更改CSS类的属性,而不是元素属性? 这是一个实际的例子: 我上课有一个div 我想更改类背景属性,而不是已分配类背景的元素。 如果我使用jQuery .css()方法做到这一点: 它会影响现在具有class的元素。到这里为止一切都很好。但是,如果我进行Ajax调用,并在class中插入更多div ,则这些背景将不会具有绿色背景,而它们将具有初始背景。
问题内容: 我需要找到一种使用JavaScript更改CSS:hover属性的方法。 例如,假设我有以下HTML代码: 以及以下CSS代码: 我想使用JavaScript将悬停属性更改为例如background:#00ff00。知道我可以使用JavaScript通过以下方式访问样式背景属性: 但是我不知道:hover的JavaScript等效项。如何使用JavaScript更改这些的:hover背
问题内容: 我使用FlexJson进行序列化,唯一的问题是它会生成小写的字段名,而我需要它们以大写开头: 当序列化时,字段被序列化为,而我需要它被序列化。 如何指定输出字段名称?我可以使用一些属性来指定所需的序列化名称吗? 问题答案: 您可以使用“ 自定义变压器” 来实现。根据Flexjson页面转换器是: 负责确定如何将传入的对象转换为JSON,对JSONContext对象进行适当的调用以输出J
我试图创建一个java程序,它将在WebSphere上编辑JVM的类路径属性。我现在能够将程序连接到服务器,也能找到节点,但我不知道下一步该做什么。我应该使用哪个MBean来找到JVM类路径并对其进行配置?我知道我可以在管理控制台上编辑它,但是对于这个任务,我真的必须使用Java程序来完成。 我也不允许使用wsadmin和jacl/jython脚本。 这是我目前的代码: 任何帮助都将不胜感激。非常
检索给定节点resp的所有属性名(而不是属性值!)的Xpath表达式看起来如何。xml标签? 假设以下XML文档: Xpath//title/@*会选择“eng,fr,easyreading”,但哪个Xpath会选择“lang,lang,type”?