Я пытаюсь добавить последовательность узлов под узлом, ниже моя ссылка XML:Xpath вставки последовательности узлов под узлом - Java
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<info>
<name>Bulkload</name>
<description/>
<extended_description/>
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>/</directory>
</info>
<connection>
<name>con_name</name>
<server>server</server>
<type>SYBASE</type>
<access>Native</access>
<database>database</database>
<port>port</port>
<username>user</username>
<password>Encrypted xyz</password>
</connection>
<step>
<name>Extract</name>
<type>TextFileOutput</type>
<fields>
**HERE**
<field>
</field>
\t </fields>
<cluster_schema/>
<remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
<xloc>300</xloc>
<yloc>168</yloc>
<draw>Y</draw>
</GUI>
</step>
</transformation>
Я хочу добавить ниже XML блок внутри поля тега:
<field>
<name>field_name</name>
<type>Integer</type>
<format>#;-#</format>
<currency/>
<decimal>.</decimal>
<group>,</group>
<nullif/>
<trim_type>none</trim_type>
<length>9</length>
<precision>0</precision>
</field>
Моим требованием является создание новых XML-документов из вышеуказанного шаблона. Я только нашел способ в Xpath, чтобы вставить узел перед узлом, так что я обновил свой шаблон и добавлен пустой узел поля в нем внутри полей узел, и с этим я был в состоянии вставить узел на код ниже:
File dest =new File("H:\\Project_Documents\\reference.ktr");
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
factory.setIgnoringComments(true);
DocumentBuilder builder = factory.newDocumentBuilder();
String newLine = System.getProperty("line.separator");
Document document = builder.parse(dest);
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
NodeList nodes = document.getElementsByTagName("field");
Text a = document.createTextNode("Anup");
Element p =document.createElement("field");
p.appendChild(a);
nodes.item(0).getParentNode().insertBefore(p, nodes.item(0));
но снова я столкнулся с проблемой дам для дочерних узлов, т. Е. Имя, тип, формат и т. Д. Может ли кто-нибудь показать мне способ достижения моей цели?
Если я не могу достичь этого с помощью Xpath, то какой парсер я должен использовать?
Почему я s, помеченный как XPath, я не вижу никакого использования XPath. И в чем именно проблема, создавая те узлы, которые вы хотите вставить с помощью W3C DOM, или вставляя вновь созданный узел в определенную позицию? –
Привет, Мартин, Спасибо за ваш комментарий. Я использую Xpath для вставки узла, поэтому я пометил xpath. Я хочу вставить вновь созданный узел внутри узла (вместо ** ЗДЕСЬ **). – Explorer
Прошу прощения, если я сделал это запутанным, я из неанглийской страны. – Explorer