Как импортировать тег «mohamed» из первого файла во все теги ahmed Во втором файле
<?xml version="1.0" encoding="UTF-8"?> <map xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> <mohamed>stackover flow</mohamed> </map>
Мой файл Xml-2
<?xml version="1.0" encoding="UTF-8"?> <map xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> <ahmed></ahmed> <ahmed></ahmed> <ahmed></ahmed> </map>
введите код здесь
С помощью этих частей я могу импортировать TagName ("mohamed") в TagName ("ahmed"). Сначала я хочу импортировать его в каждое TagName ("ahmed") Во втором файле
public static void t (int f , int g,String z) { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; Document doc = null; Document doc2 = null; String a = "C:\\Users\\chirap\\Desktop\\Startimes\\C.txt" ; String c ; try { db = dbf.newDocumentBuilder(); doc = db.parse(new File(a)); doc2 = db.parse(new File("C:\\Users\\chirap\\Desktop\\Startimes\\A (1).txt")); NodeList ndListFirstFile = doc.getElementsByTagName("ahmed"); Node nodeArea = doc.importNode(doc2.getElementsByTagName("mohamed").item(0), true); NodeList nList2 = doc2.getElementsByTagName("mohamed"); for (int i = f; i <g; i++) { c = i+"" ; doc2 = db.parse(new File("C:\\Users\\chirap\\Desktop\\Startimes\\A ("+c+").txt")); for (int temp = 0; temp < nList2.getLength(); temp++) { nodeArea = doc.importNode(doc2.getElementsByTagName("mohamed").item(temp), true); ndListFirstFile.item(0).appendChild(nodeArea);
Результат сейчас:
<?xml version="1.0" encoding="UTF-8"?> <map xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> <ahmed><mohamed>stackover flow</mohamed></ahmed> <ahmed></ahmed> <ahmed></ahmed> </map>
Я хочу этот результат:
<?xml version="1.0" encoding="UTF-8"?> <map xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> <ahmed><mohamed>stackover flow</mohamed></ahmed> <ahmed><mohamed>stackover flow</mohamed></ahmed> <ahmed><mohamed>stackover flow</mohamed></ahmed> </map>
попробуйте с этим
try { File inputOne = new File("first.xml"); File inputTwo = new File("second.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document docOne = dBuilder.parse(inputOne); Document docTwo = dBuilder.parse(inputTwo); NodeList nodeListAhmed = docTwo.getElementsByTagName("ahmed"); for (int i = 0; i < nodeListAhmed.getLength(); i++) { Node nodeMohamed = docTwo.importNode(docOne.getElementsByTagName("mohamed").item(0), true); nodeListAhmed.item(i).appendChild(nodeMohamed); } DOMSource source = new DOMSource(docTwo); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); StreamResult result = new StreamResult("output.xml"); transformer.transform(source, result); } catch (Exception e) { e.printStackTrace(); }
Я хочу этот результат <?xml version="1.0" encoding="UTF-8"?> <ahmed xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> stackover flow </ahmed>
Я хочу этот результат
<?xml version="1.0" encoding="UTF-8"?> <ahmed xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> stackover flow </ahmed>
Вы можете использовать .querySelector(), чтобы получить элемент, имеющий tagName "mohamed", сохранить .parentElement элемента в переменнойсохраните .textContent соответствующих элементов в переменной, удалите соответствующий элемент из родительского элемента с помощью .removeChild(), установите родительский элемент .textContent в сохраненную переменную
.querySelector()
tagName
"mohamed"
.parentElement
.textContent
.removeChild()
const xml = `<?xml version="1.0" encoding="UTF-8"?> <ahmed xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <!-- created with Free Online Sitemap Generator www.xml-sitemaps.com --> <mohamed>stackover flow</mohamed> </ahmed>`; const parser = new DOMParser(); const doc = parser.parseFromString(xml, "text/xml"); let el = doc.querySelector("mohamed"); let parentElement = el.parentElement; let text = el.textContent; parentElement.removeChild(el); parentElement.textContent = text; console.log(`<?xml version="1.0" encoding="UTF-8"?>${doc.documentElement.outerHTML}`);