Попробуйте использовать Системные свойства:
java -Dvariable=value -jar my.jar
Это либо работает из коробки, либо вам нужно указать контексту приложения, чтобы он смотрел на свойства системы, когда она расширяет переменные. Прошло много времени с тех пор, как я это попробовал.
Хорошей отправной точкой является PropertySourcesPlaceholderConfigurer
.
Вы можете использовать XmlReader
с XmlReaderSettings.IgnoreComments
, установленным в true:
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
using (XmlReader reader = XmlReader.Create("input.xml", readerSettings))
{
XmlDocument myData = new XmlDocument();
myData.Load(reader);
// etc...
}
(найдено из здесь по поиск XmlDocument ignore comments
)
foreach(XmlNode node in nodeList)
if(node.NodeType != XmlNodeType.Comment)
...
Вы можете просто добавить фильтр на ваши ChildNodes. Например,
var children = myNode.ChildNodes.Cast<XmlNode>().Where(n => n.NodeType != XmlNodeType.Comment);
Кроме того, вы можете загрузить XmlDocument, передаваемый в XmlReader, с такими настройками, что XmlReaderSettings.IgnoreComments имеет значение true.
using (var file = File.OpenRead("datafile.xml"))
{
var settings = new XmlReaderSettings() { IgnoreComments = true, IgnoreWhitespace = true };
using (var xmlReader = XmlReader.Create(file, settings))
{
var document = new XmlDocument();
document.Load(xmlReader);
// Process document nodes...
}
}
использовать XmlReaderSettings
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
XmlReader reader = XmlReader.Create(sourceFilePath, readerSettings);
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load(reader);
Dim pattern As String = String.Empty
Dim xDoc As XmlDocument = New XmlDocument()
xDoc.Load(path)
''Pattern of comments
pattern = "(<!--.*?--\>)"
xDoc.InnerXml = Regex.Replace(xDoc.InnerXml, pattern, String.Empty, RegexOptions.Singleline)
<!--aftr this run ur code-->
Если вы хотите использовать XmlDocument вместо XmlReader, вам лучше обратиться к дочерним узлам по имени или с помощью XPath.
Тогда вам не нужно беспокоиться о комментариях, которые были добавлены, или о других узлах, или об изменении порядка.
XmlDocument myData = new XmlDocument();
myData.Load("datafile.xml");
XmlNode DocNode = myData.DocumentElement;
XmlNode Child = DocNode ["SomeChildNode"];
При этом будет выбран «SomeChildNode», дочерний элемент корневого элемента.
Следующий пример перебирает все книги в books.xml и печатает автора. Он использует селектор свойства строки и Xpath. Это не должно быть затронуто комментариями и т. Д.
XmlDocument myData = new XmlDocument();
myData.Load("books.xml");
XmlNode DocNode = myData.DocumentElement;
XmlNodeList BookNodeList = DocNode.SelectNodes("./book");
foreach (XmlNode Book in BookNodeList)
{
Console.WriteLine(Book["author"].InnerText);
}
Обратите внимание, что с XPath вы можете так же легко искать все элементы книги в документе, используя что-то вроде ".//book".
books.xml:
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
<catalog>
Ссылки:
Свойство XmlNode.Item (String) hxxp: //msdn.microsoft.com/en-us/library/sss31aas.aspx Метод XmlNode.SelectNodes (String) http://msdn.microsoft.com/en-us/library/hcebdtae.aspx Метод XmlNode.SelectSingleNode (String) http://msdn.microsoft. ком / EN-US / библиотека / fb63z0tw.aspx