在本文中,您将会了解到关于如何使用DOMDocument删除元素?的新资讯,同时我们还将为您解释从dom中删除所有元素的相关在本文中,我们将带你探索如何使用DOMDocument删除元素?的奥秘,分析
在本文中,您将会了解到关于如何使用DOMDocument删除元素?的新资讯,同时我们还将为您解释从dom中删除所有元素的相关在本文中,我们将带你探索如何使用DOMDocument删除元素?的奥秘,分析从dom中删除所有元素的特点,并给出一些关于c# – 当我们有多个具有相同名称但不同属性的元素时,如何使用Xdocument从xml中删除元素、document.write PHP XML操作类DOMDocument、javascript-仅使用DomDocument拉HREF、org.dom4j.dom.DOMDocument的实例源码的实用技巧。
本文目录一览:- 如何使用DOMDocument删除元素?(从dom中删除所有元素)
- c# – 当我们有多个具有相同名称但不同属性的元素时,如何使用Xdocument从xml中删除元素
- document.write PHP XML操作类DOMDocument
- javascript-仅使用DomDocument拉HREF
- org.dom4j.dom.DOMDocument的实例源码
如何使用DOMDocument删除元素?(从dom中删除所有元素)
是否可以从加载中删除元素DOM
而不创建新元素?例如这样的事情:
$dom = new DOMDocument(''1.0'', ''utf-8'');$dom->loadHTML($html);foreach($dom->getElementsByTagName(''a'') as $href) if($href->nodeValue == ''First'') //delete
答案1
小编典典通过告诉父节点删除子节点来删除该节点:
$href->parentNode->removeChild($href);
请参阅DOMNode::$parentNode
文档
和DOMNode::removeChild()
文档 。
c# – 当我们有多个具有相同名称但不同属性的元素时,如何使用Xdocument从xml中删除元素
<Applications> <myApp> <add key="ErrorDestinationEventLog" value="EventLog" /> <add key="version" value="5.0.0.0" /> <add key="DebugMode_RUN" value="true" /> </myApp> </Applications>
所有元素具有相同的元素名称但不同的属性.
如何删除一个特定的元素,它的属性从这个xml使用XDocument在C#中?
xd.Element("Applications").Element("myApp").Element(xe.Name).RemoveAll();
上述命令不起作用,因为所有元素都具有相同的名称.
有没有办法识别一个元素,除了它的名字?
如果是这样,我该如何使用它从XDocument中删除它?
解决方法
string key = "version"; XDocument xdoc = XDocument.Load(path_to_xml); xdoc.Descendants("add") .Where(x => (string)x.Attribute("key") == key) .Remove();
更新你几乎做了这份工作.你错过的是按属性值过滤元素.您的代码包含过滤和删除所选元素:
xd.Element("Applications") .Element("myApp") .Elements("add") .Where(x => (string)x.Attribute("key") == key) .Remove();
document.write PHP XML操作类DOMDocument
javascript-仅使用DomDocument拉HREF
我想从以下html输出中提取HREF
<div>
<p>
<ahttps://www.jb51.cc/tag/odo/" target="_blank">odo-TAG-TAB" href="/course?courseId=1.2&date=20150713">
Ayr
</a> | SOFT
</p>
<ul>
<lititle="7f 50yds Maiden Stakes | 10 runners">
<ahttps://www.jb51.cc/tag/odo/" target="_blank">odo-TAG-TAB" href="/raceresult?raceId=1.2.1150713.1">
09:00
</a>
</li>
<lititle="1m Handicap | 5 runners">
<ahttps://www.jb51.cc/tag/odo/" target="_blank">odo-TAG-TAB" href="/raceresult?raceId=1.2.1150713.2">
09:30
</a>
</li>
<lititle="1m2f Handicap | 6 runners">
<ahttps://www.jb51.cc/tag/odo/" target="_blank">odo-TAG-TAB" href="/raceresult?raceId=1.2.1150713.3">
10:00
</a>
</li>
但是我只需要href属性(如果调用包含单词“ race”),例如它将拉该href
<ahttps://www.jb51.cc/tag/odo/" target="_blank">odo-TAG-TAB" href="/raceresult?raceId=1.2.1150713.1">
我已经尝试过自己,但是似乎无法使用getAttribute(‘href’)拉href并得到错误“在非对象上调用成员函数item()”
解决方法:
我想这就是你要找的
$dom = new DomDocument;
$dom->loadHtml($html);
$tagList = $dom->getElementsByTagName('a');
foreach ($tagList as $tag) {
// Simple string check, but beware using strstr and utf-8
if(strstr($tag->getAttribute('class'), 'race')) {
echo $tag->getAttribute('href');
}
}
或者您可以使用SimpleXML
$dom = new DomDocument;
$dom->loadHtml($html);
$xml = simplexml_import_dom($dom);
$tagList = $xml->xpath("//a[contains(@class,'race')]");
foreach ($tagList as $tag) {
var_dump($tag->attributes()['href']);
}
org.dom4j.dom.DOMDocument的实例源码
public static Document messageSetup(String rootElement,String namespace,String schemaURL,String actionName,Element content) { Namespace nmsp=DOMNamespace.get("xsi",namespace); Document newDoc=new DOMDocument(); Element resp=new DOMElement(rootElement); Element action=new DOMElement("action"); action.addAttribute("name",actionName); action.add(content); resp.addAttribute("xsi:noNamespaceSchemaLocation",schemaURL); resp.add(nmsp); resp.add(action); newDoc.setRootElement(resp); return newDoc; }
/** Create a new SimpleXml just containing the root element. * * @param rootElement Name of the root element */ public SimpleXml(String rootElement) { ArgumentNotValid.checkNotNullOrEmpty(rootElement,"String rootElement"); xmlDoc = new DOMDocument(); xmlDoc.addElement(rootElement); source = "Newly creating XML file with root '" + rootElement + "'"; }
@Test public void testMisc () { final Document aXML = new DOMDocument (); final Element aRoot = aXML.createElement ("rootElement"); assertNotNull (XMLWriter.getNodeAsstring (aRoot)); }
@Test public void testMisc2 () { final DOMDocument aXML = new DOMDocument (); final Node aChild = aXML.appendChild (new DOMElement ("rootElement",new DOMNamespace ("xyz","http://www.example.org"))); aChild.appendChild (new DOMText ("anyText")); aChild.appendChild (new DOMEntityReference ("abc")); assertNotNull (XMLWriter.getNodeAsstring (aXML)); }
public Document toXml(XmlWriterContext writerContext) { DOMElement root = new DOMElement("stage"); root.addAttribute("name",stage.getName()).addAttribute("counter",String.valueOf(stage.getCounter())); Document document = new DOMDocument(root); root.addElement("link").addAttribute("rel","self").addAttribute("href",httpUrl(writerContext.getBaseUrl())); StageIdentifier stageId = stage.getIdentifier(); root.addElement("id").addCDATA(stageId.asURN()); String pipelineName = stageId.getPipelineName(); root.addElement("pipeline").addAttribute("name",pipelineName) .addAttribute("counter",String.valueOf(stageId.getPipelineCounter())) .addAttribute("label",stageId.getPipelineLabel()) .addAttribute("href",writerContext.getBaseUrl() + "/api/pipelines/" + pipelineName + "/" + stage.getPipelineId() + ".xml"); root.addElement("updated").addText(DateUtils.formatISO8601(stage.latestTransitionDate())); root.addElement("result").addText(stage.getResult().toString()); root.addElement("state").addText(stage.status()); root.addElement("approvedBy").addCDATA(stage.getApprovedBy()); Element jobs = root.addElement("jobs"); for (JobInstance jobInstance : stage.getJobInstances()) { jobs.addElement("job").addAttribute("href",writerContext.getBaseUrl() + "/api/jobs/" + jobInstance.getId() + ".xml"); } return document; }
public Document toXml(XmlWriterContext writerContext) throws DocumentException,IOException { DOMElement root = new DOMElement("pipeline"); root.addAttribute("name",pipeline.getName()).addAttribute("counter",String.valueOf(pipeline.getCounter())).addAttribute("label",pipeline.getLabel()); Document document = new DOMDocument(root); String baseUrl = writerContext.getBaseUrl(); root.addElement("link").addAttribute("rel",httpUrl(baseUrl)); root.addElement("id").addCDATA(pipeline.getPipelineIdentifier().asURN()); PipelineTimelineEntry pipelineAfter = pipeline.getPipelineAfter(); if (pipelineAfter != null) { addTimelineLink(root,baseUrl,"insertedBefore",pipelineAfter); } PipelineTimelineEntry pipelineBefore = pipeline.getPipelineBefore(); if (pipelineBefore != null) { addTimelineLink(root,"insertedAfter",pipelineBefore); } root.addElement("scheduleTime").addText(DateUtils.formatISO8601(pipeline.getScheduledDate())); Element materials = root.addElement("materials"); for (MaterialRevision materialRevision : pipeline.getCurrentRevisions()) { populateXml(materials,materialRevision,writerContext); } Element stages = root.addElement("stages"); for (StageInstanceModel stage : pipeline.getStageHistory()) { if (! (stage instanceof NullStageHistoryItem)) { stages.addElement("stage").addAttribute("href",StageXmlviewmodel.httpUrlFor(writerContext.getBaseUrl(),stage.getId())); } } root.addElement("approvedBy").addCDATA(pipeline.getApprovedBy()); return document; }
public Document toXml(XmlWriterContext writerContext) throws DocumentException,IOException { DOMElement root = new DOMElement("scheduledJobs"); for (WaitingJobPlan jobPlan : jobPlans) { DOMElement jobElement = getXmlForJobPlan(writerContext,jobPlan); root.add(jobElement); } DOMDocument domDocument = new DOMDocument(root); return domDocument; }
public Document toXml(XmlWriterContext writerContext) throws DocumentException,IOException { DOMElement root = new DOMElement("job"); root.addAttribute("name",jobInstance.getName()); Document document = new DOMDocument(root); root.addElement("link").addAttribute("rel",httpUrl(writerContext.getBaseUrl())); JobIdentifier identifier = jobInstance.getIdentifier(); root.addElement("id").addCDATA(identifier.asURN()); String pipelineName = identifier.getPipelineName(); StageIdentifier stageId = identifier.getStageIdentifier(); root.addElement("pipeline").addAttribute("name",stageId.getPipelineLabel()); root.addElement("stage").addAttribute("name",stageId.getStageName()).addAttribute("counter",stageId.getStageCounter()).addAttribute("href",StageXmlviewmodel.httpUrlFor( writerContext.getBaseUrl(),jobInstance.getStageId())); root.addElement("result").addText(jobInstance.getResult().toString()); root.addElement("state").addText(jobInstance.getState().toString()); Element properties = root.addElement("properties"); for (Property property : writerContext.propertiesForJob(jobInstance.getId())) { properties.addElement("property").addAttribute("name",property.getKey()).addCDATA(property.getValue()); } root.addElement("agent").addAttribute("uuid",jobInstance.getAgentUuid()); root.addComment("artifacts of type `file` will not be shown. See https://github.com/gocd/gocd/pull/2875"); Element artifacts = root.addElement("artifacts"); artifacts.addAttribute("baseUri",writerContext.artifactBaseUrl(identifier)).addAttribute("pathFromArtifactRoot",writerContext.artifactRootPath(identifier)); JobPlan jobPlan = writerContext.planFor(identifier); for (ArtifactPlan artifactPlan : jobPlan.getArtifactPlansOfType(ArtifactType.unit)) { artifacts.addElement("artifact").addAttribute("src",artifactPlan.getSrc()).addAttribute("dest",artifactPlan.getDest()).addAttribute("type",artifactPlan.getArtifactType().toString()); } // Retain the top level elements for backward-compatibility root.addComment("resources are Now intentionally left blank. See https://github.com/gocd/gocd/pull/2875"); root.addElement("resources"); root.addComment("environmentvariables are Now intentionally left blank. See https://github.com/gocd/gocd/pull/2875"); root.addElement("environmentvariables"); return document; }
public static void save(Furnace furnace) throws IOException { Document doc = new DOMDocument(new DOMElement(HELP)); Iterable<Configurationoption> windupOptions = WindupConfiguration.getwindupConfigurationoptions(furnace); for (Configurationoption option : windupOptions) { Element optionElement = new DOMElement(OPTION); optionElement.addAttribute(NAME,option.getName()); Element descriptionElement = new DOMElement(DESCRIPTION); descriptionElement.setText(option.getDescription()); optionElement.add(descriptionElement); // Type Element typeElement = new DOMElement(TYPE); typeElement.setText(option.getType().getSimpleName()); optionElement.add(typeElement); // UI Type Element uiTypeElement = new DOMElement(UI_TYPE); uiTypeElement.setText(option.getUIType().name()); optionElement.add(uiTypeElement); // Available Options Element availableOptionsElement = new DOMElement(AVAILABLE_OPTIONS); for (Object availableValueObject : option.getAvailableValues()) { if (availableValueObject == null) continue; Element availableOption = new DOMElement(AVAILABLE_OPTION); availableOption.setText(String.valueOf(availableValueObject)); availableOptionsElement.add(availableOption); } if (!availableOptionsElement.elements().isEmpty()) optionElement.add(availableOptionsElement); // Is it required? Element required = new DOMElement(required); required.setText(Boolean.toString(option.isrequired())); optionElement.add(required); doc.getRootElement().add(optionElement); } try (FileWriter writer = new FileWriter(getDefaultFile())) { doc.write(writer); } }
今天关于如何使用DOMDocument删除元素?和从dom中删除所有元素的讲解已经结束,谢谢您的阅读,如果想了解更多关于c# – 当我们有多个具有相同名称但不同属性的元素时,如何使用Xdocument从xml中删除元素、document.write PHP XML操作类DOMDocument、javascript-仅使用DomDocument拉HREF、org.dom4j.dom.DOMDocument的实例源码的相关知识,请在本站搜索。
本文标签: